braise 0.1.4

Run your tasks like a chef !
Documentation

Crates.io GitHub Release


Installation

Using homebrew

brew install cestef/tap/braise

Using cargo

cargo install braise

or with cargo-binstall

cargo binstall braise

Usage

All the configuration is done in a braise.toml file at the root of your project.

[!NOTE] Valid file names are defined here

[NAME]
command = "echo Hello, World!"

Then you can run your task with:

braise NAME

The following options are available:

# Global configuration
shell = "sh -c" # The shell to use (default: $SHELL or "sh -c")
quiet = false # Do not print the command output (default: false)
default = "NAME" # The default task to run (optional)
dotenv = ".env" # The path to the .env file (optional)

# Task configuration
[NAME]
command = "echo Hello, World!" # The command to run
description = "A simple task" # The description of the task (optional)
dependencies = ["OTHER_TASK"] # The list of tasks to run before this one (optional)

The shell and quiet fields are global and can be overridden for each task.

[!NOTE] If you are a busy person, you can use the br alias instead of braise

Environment variables

By default braisé will look for a .env file at the root of your project and load the environment variables from it.

# .env
HELLO=WORLD
[NAME]
command = "echo $HELLO" # This will let the shell grab the environment variable
# or
command = "echo {env(HELLO)}" # This will expand to "echo WORLD"

Default values for environment variables can also be set:

[NAME]
command = "echo {env(MISSING:default)}" # This will expand to "echo default"

Platform specific commands

You can specify platform specific commands by using the runs-on field:

[[NAME]]
command = "echo Hello, World!"
runs-on = ["windows"]

[[NAME]]
command = "echo Bonjour, Monde!"
runs-on = ["linux", "macos"]

Notice the double brackets [[NAME]] to define multiple tasks with the same name.

License

This project is licensed under the MIT license (You can basically do whatever you want with this code)