#tasks #command #toml #env-var #chef #platform #name

bin+lib braise

像厨师一样运行任务!

9 个版本

0.1.8 2024年8月7日
0.1.7 2024年8月7日
0.1.6 2024年7月2日

#239 in 配置

Download history 211/week @ 2024-06-25 409/week @ 2024-07-02 38/week @ 2024-07-23 207/week @ 2024-08-06

245 每月下载量

自定义许可证

155KB
748

braisé

Crates.io GitHub Release

像厨师一样运行任务!


安装

使用 homebrew

brew install cestef/tap/braise

使用 cargo

cargo install braise

或使用 cargo-binstall

cargo binstall braise

使用方法

所有配置都在项目根目录下的 braise.toml 文件中完成。

[!NOTE] 有效的文件名定义 在此处

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

然后你可以使用以下命令运行你的任务

braise NAME

以下选项可用

# 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)

shellquiet 字段是全局的,并且可以为每个任务覆盖。

[!NOTE] 如果你是一个忙碌的人,你可以使用 br 别名而不是 braise

环境变量

默认情况下,braisé 将在项目根目录下查找 .env 文件并从中加载环境变量。

# .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"

也可以设置环境变量的默认值

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

特定于平台的命令

您可以通过使用 runs-on 字段来指定特定于平台的命令

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

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

注意双括号 [[NAME]] 来定义具有相同名称的多个任务。

JSON Schema

一个 JSON schema 可在此处获得 此处,以帮助您编写 braise.toml 文件。

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

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

您可以使用 #:schema 指令来指定模式文件的路径。

许可证

本项目采用 MIT 许可证 (您基本上可以随意使用此代码)

依赖关系

~11–23MB
~335K SLoC