"tohum" (/toΛhuΛm/, which means "seed" in Turkish) is a CLI tool that you can use to initialize your new projects from a pre-defined templates that you've chosen. You can also implement your own templates to extend the functionality.
β οΈ WARNINGβ οΈ tohum is in its early stage of development, expect breaking changes.
Currently tohum is only published on cargo registry which means you can simply use cargo to install it:
cargo install tohum
Since it is too early, we haven't attempt to add tohum to nixpkgs but there is a flake defined in the root of the repository which allow you to run, build or include tohum in your own flakes or system configuration.
Another option (actually this is not super different from installing from cargo) is building from the source code. For this option you must have Rust toolchain. You can install it by simply using rustup.
git clone https://github.com/mkaramuk/tohum.git && cd tohum
cargo build --release
sudo ./install.sh # This installs the binary to `/usr/local/bin/tohum`
"Store" is the concept that includes all the available templates that can be used with tohum. It is a simple directory that contains some templates and a store.json
file which includes the metadata about the Store. tohum currently only supports using the default Store which lives in this repository (check the templates
directory).
Let's list the all the templates from the default Store:
$ tohum store list
π¦ Available templates from Store https://raw.githubusercontent.com/mkaramuk/tohum/main/templates/store.json:
π go/cli
Go CLI application template with basic setup.
π node/cli/ts
Node.js project TypeScript included. This template uses tsup as the bundler.
π node/react
React project with TypeScript and Vite setup. This template uses tsup as the bundler.
Now we know what are the available templates that we can use. Pick one and initialize a new project. For example:
$ tohum init node/cli/ts my-super-cli-project
π Project 'my-super-cli-project' successfully initialized!
π Template: node/cli/ts
π Location: my-super-cli-project
Congratulations! You've provisioned your first project using tohum!
TODO: Write me!
We are open for all type of contributions including translations, adding and maintaining templates, feature implementations and bug fixings.