Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

ntzwrk/skeleton

Repository files navigation

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