A simple command line tool for managing and using skeleton projects
Skely is very simple. All it does is copy a given template file or directory from ~.config/sk
to a specified directory.
To install Skely run
cargo install skely
As of right now, Skely's configuration is very simple. It is one file at ~/.config/config.toml
. The default configuration looks like this:
# Skely config
editor = ""
placeholder = "PLACEHOLDER"
As you many have guessed, the editor option is the editor you would like Skely to use. The string should contain the proper command to call the editor. For example, if I wanted to use Neovim, I wouldn't use editor = "neovim"
, I would use editor = "nvim
so that Skely can properly execute it. Placeholder is a bit more complicated. Placeholder is the string that you want to be replaced in all the skeleton files with your project's name. To disable this option simply leave it blank as ""
To configure a new skeleton, you can either configure it manually by creating it in the ~/.config/skeletons
directory as a directory or file under the name you would like to identify it by, or you can run the sk add foo
command to open ~/.config/skeletons/foo.sk
in your preferred text editor. Interactive directory creation is currently under development.
We have a skeleton structured like this:
~/.config/sk/skeletons/
ββ c/
β ββ src/
β β ββ main.c
β ββ CMakeLists.txt
The pattern for creating a new project using a template is
sk new <ID> <PATH>
To create a new project using this template in directory foo
you would use the command
sk new c foo
We have a template for a CMakeLists.txt
:
~/.config/sk/skeletons/
ββ cmake.sk
To copy this file to our project as CMakeLists.txt
you would use the command
sk new cmake CMakeLists.txt
If you were to run
sk new cmake .
It would copy cmake.sk
to your current project with the name cmake.sk
To remove a configured skeleton foo
, you would run
sk remove foo
Pretty simple
Equally as simple, to list configured skeletons, run
sk list
Shocking!
If you've read this far, thank you for taking interest in my software, it is much appreciated :).