CLI tool allowing you to write and execute "recipes".
- 🍕 Quickly bootstrap your projects by setting up the file structure and installing all your tools and frameworks using only one command. Abstraction for the most common configuration files such as Docker compose, dotenv, yaml, gitignore and more are available.
- 🍪 Execute repetitive commands and manipulate templated files in order to fasten repetitive tasks.
- 🍱 Interactively let the user choose his configuration with the power of CLI inquiries.
/!\ Please be careful when using recipes from untrusted sources, since it can execute commands, read, write and delete files.
cuisto requires git and Node 18+ to run (but we suggest you install or use the latest LTS). Install it using pnpm, npm or whatever you prefered package manager may be:
npm install -g @lazybobcat/cuisto-clicuisto is also available as a Docker image: docker run --rm -it -v $(pwd):/app -u $(id -u):$(id -g) lazybobcat/cuisto <command>. See cuisto's Docker Hub repository for more information.
To execute a recipe hosted on GitHub, simply use the install command:
cuisto install <recipe> [branch]where <recipe> is the <owner>/<repository> of the recipe repository (cuisto will look for a schema.json file). By default the main branch will be used, but you can override it by passing a [branch] option, allowing you to manage recipe versions.
You can also install recipes that are located on your computer or server by providing a relative path (starting with .) or an absolute one:
cuisto install /path/to/my/recipeYou can add or override recipe sources in the configuration, for example if your recipe is not on GitHub but on Gitlab. See Configuration if you find yourself in this situation.
{
"$schema": "https://raw.githubusercontent.com/lazybobcat/cuisto/main/cuistorc.schema.json",
"name": "<projectName>",
"recipe_sources": []
}Quickly generate the cuisto configuration file in your project by executing:
cuisto init [project-name]Recipes all have a schema.json and a main javascript module, to initialize them with useful information why not use the new-recipe recipe?
cuisto new-recipe <recipe-name>You can find the full documentation of how to write recipes on the wiki.
cuisto can use a per-project configuration by reading a .cuistorc.json file. This file can be created for you by running the cuisto init command.
You can provide your configurations as JSON key-values, here are the available configurations:
"name"(optional): the value is a string containing the project name. It can be useful for recipes to use in file templates."recipe_sources": an array of strings representing the places to look for recipes. For example, if you have a Gitlab group that contain all your recipe, you can provide a git link to that group (ie:"[email protected]:<myorg>/<mygroup>"). Recipes will be looked for in that group (ie:cuisto install customrecipewill try to look for the[email protected]:<myorg>/<mygroup>/customrecipe.gitrepository).
You can find more detailed information and examples following these links:
Licensed under the MIT license, Copyright 2024 Loïc Boutter and other contributors. Copy of the licence.