#命令运行器 #编排 #简化 #版本 #独立

app awesome-cli

用于简化命令编排的命令运行器

5 个版本

0.1.1 2024 年 6 月 2 日
0.1.0 2024 年 5 月 8 日
0.1.0-beta.12024 年 3 月 4 日
0.0.1 2024 年 1 月 10 日

命令行工具 中排名 823

每月下载 41

MIT/Apache

29KB
634

重要 已废弃:请使用 arun

这个库已被废弃。新的库是 arun

arun 是维护版本。它提供了可以嵌入代码中的 lib arun,或者使用该库的 CLI arun-cli




仅用于历史参考(请勿使用,使用 arun

免责声明:版本 0.1.x 仍在开发中,可能会有一些变化。Awesome-cli 将从版本 0.2.x 开始更加严格地遵循 semver。

Awesome-cli 允许您将一组命令描述为组或单个命令,并相应地运行它们。

配置文件名为 Awesome.toml,应位于与此文件相同的目录中。

Runner 是可以被 awesome-cli 执行的命令描述。

有两种类型的 "Runner":

  • 分组运行器

    • 使用每个组名的 [[runners._group_name_]] TOML 表数组进行描述(例如,[[runners.dev]])。
    • 分组执行:当调用 awesome _group_name_(例如,awesome dev)时,该组中的所有运行器将按文件中列出的顺序执行。
    • 单独执行:可以使用点符号使用 awesome _group_name_._runner_name(例如,awesome dev.cargo_build)来执行组中的一个运行器。
    • 限制:组中的运行器名称必须在该组内唯一。
  • 独立运行器

    • 使用具有 [[runner]] TOML 表数组进行描述,其中每个运行器都有一个 nameref 属性。
    • 这些可以通过 awesome _runner_name 调用(例如,awesome list_files)。
    • 约束:独立运行者的名称必须是唯一的,且不能与组名称冲突。

示例

# Solo Runner 
[[runner]]
name = "list_files"
cmd = "ls"
args = ["-ll"]

[[runner]]
name = "list_files_human"
cmd = "ls"
args = ["-llh"]

[[runners.build]]
name = "tauri_icons"
working_dir = "crates/app-desktop/"
when.no_file_at = "icons/32x32.png"
cmd = "cargo"
args = ["tauri", "icon", "icons/app-icon.png"]

[[runners.build]]
name = "cargo_build"
working_dir = "crates/app-desktop/"
cmd = "cargo"
args = ["build"]

[[runners.build]]
name = "pcss"
working_dir = "frontend/"
cmd = "npm"
args = ["run", "pcss"]


# Now: runners, can ref other runner (only one hop for now)

[[runners.dev]]
ref = "build.tauri_icons"

[[runners.dev]]
ref = "build.pcss"
# The args from the target will be extended with the args_add items
args_add = ["--", "-w"]
# will run concurrently
concurrent = true 
# if this process exit, end the dev session
end_all_on_exit = true

然后我们可以这样运行

  • awesome build - 将按顺序运行所有 runners.build
  • awesome dev - 将按顺序运行所有 runnders.dev
  • awesome build.tauri_icons - 将仅运行 tauri 图标命令
  • awesome list_files - 将执行名为 list_files 的独立运行者

GitHub 上的此仓库

依赖项

~7–33MB
~494K SLoC