Skeleton is a management tool for project prototypes. Prototypes are defined in language specific toml files. Skeleton can create directories, touch files, execute predefined commands and download a .gitignore list from gitignore.io.
Skeleton is written in pure Rust because I wanted to learn this language using a small hobby project.
To install skeleton, you need the Rust package manager cargo.
cargo install skeleton
To install the most current version from master (might be buggy):
git clone https://github.com/ntzwrk/skeleton.git
cd skeleton
cargo install
Language specific configuration must be placed in ${HOME}/.skeleton
and are referenced by their name without the .toml
extension.
toml
order = ['mkdir', 'touch', 'exec', 'gitignore']
mkdir = ['src', 'test']
touch = ['README.md']
exec = ['cargo init']
gitignore = ['rust', 'vim']
include = ['global']
Every configuration setting is optional. The order
setting is used to customize the execution order. The default
order is mkdir
, gitignore
, touch
, exec
.
Includes are executed first and in the provided order, followed by the selected configuration.
``` Skeleton 0.2.1 Valentin B. vbrandl@riseup.net Skeleton project manager
USAGE:
skeleton --lang
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-l, --lang
SUBCOMMANDS: help Prints this message or the help of the given subcommand(s) init initialize existing project new create new project ```
So to initialize a new Rust project named test_project
one would execute skeleton -l rust new test_project
. Therefore a configuration file $HOME/.skeleton/rust.toml
must exist.
Shell completions for Bash and Fish can be found in the completions
folder. Completion for other shells will be available as soon as clap supports them.