Skip to content
Management tool for project skeletons
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Build/GitHooks
completions
examples
man/man1
src
test
.editorconfig
.gitignore
.travis.yml
Cargo.toml
LICENSE
PKGBUILD
README.md
appveyor.yml
build.rs

README.md

Skeleton

Travis Build Status AppVeyor Build status codecov.io License crates.io

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.

Installation

To install skeleton, you need the Rust package manager cargo.

cargo install skeleton

To install the most current version from master:

git clone https://github.com/ntzwrk/skeleton.git
cd skeleton
cargo install

Configuration

Language specific configuration must be placed in $HOME/.skeleton and are referenced by their name without the .toml extension.

Configuration format

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.

Usage

Skeleton 0.3.3
Valentin B. <vbrandl@riseup.net>
Skeleton project manager

USAGE:
    skeleton --lang <LANG> [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -l, --lang <LANG>    Set language configuration

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

Shell completions for Bash, Fish, Zsh and PowerShell can be found in the completions folder.

Install Zsh completion

You can put the Zsh completion file _skeleton in any directory (I use $HOME/.zsh/completions). Then you need to add this path to $fpath in your .zshrc:

fpath=($HOME/.zsh/completions $fpath)

To rebuild the completion cache you might need to execute the following commands:

rm -f .zcompdump
compinit
You can’t perform that action at this time.