braise

Crates.iobraise
lib.rsbraise
version0.1.9
sourcesrc
created_at2024-07-01 11:34:16.390254
updated_at2024-09-23 06:48:40.506813
descriptionRun your tasks like a chef !
homepagehttps://github.com/cestef/braise
repositoryhttps://github.com/cestef/braise
max_upload_size
id1288668
size209,382
cstef (cestef)

documentation

README

braisé

Crates.io GitHub Release

Run your tasks like a chef !


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)
runs-on = ["linux", "macos"] # The platforms on which the task can run (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.

JSON Schema

A JSON schema is available here to help you write your braise.toml file.

#:schema https://raw.githubusercontent.com/cestef/braise/main/schema/braise.schema.json

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

You can use the #:schema directive to specify the path to the schema file.

License

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

Commit count: 71

cargo fmt