#monorepo #runner #pipe #multi-platform #modern #management #reloading

bin+lib whiz

适用于多平台单仓的现代化 DAG/任务运行器

12 个版本 (5 个破坏性版本)

0.5.0 2023 年 8 月 10 日
0.4.2 2023 年 6 月 5 日
0.4.1 2023 年 4 月 21 日
0.3.2 2023 年 2 月 15 日
0.0.1 2022 年 6 月 25 日

#2 in #reloading

Download history 8/week @ 2024-04-04 3/week @ 2024-04-18 114/week @ 2024-04-25

每月 51 次下载

MPL-2.0 许可证

360KB
2K SLoC

Whiz

Crates.io

Whiz (/wɪz/) 是一个适用于多平台单仓的现代化 DAG/任务运行器。它提供了一个方便的实时重新加载、环境管理、管道等功能,并支持标签页视图。

Whiz 是 Metatype 生态系统的一部分。可以考虑查看该组件如何与整个生态系统集成,并浏览 文档 以查看更多示例。

入门

您可以从 GitHub 上的 发布页面 下载二进制可执行文件,将其设置为可执行并添加到您的 $PATH 中,或者使用以下方法自动化这些步骤。

curl -fsSL https://raw.githubusercontent.com/zifeo/whiz/main/installer.sh | bash

# via cargo
cargo install whiz --locked 
cargo install --git https://github.com/zifeo/whiz --locked

# create your tasks file, see https://github.com/zifeo/whiz/blob/main/whiz.yaml for an example
touch whiz.yaml

# run
whiz

# upgrade
whiz upgrade

用法

配置文件

所有任务的环境界限可以在根目录的 env 节中定义。当加载秘密时,可以使用 Lade 加载器(例如 infisical://DOMAIN/PROJECT_NAME/ENV_NAME/SECRET_NAME)。

env:
    [key]: [value]

所有其他根级别键都被视为任务。每次加载依赖项时,依赖的任务也会重新加载。

[task]:
    workdir: [working directory, by default .]
    command: [command]
    watch: [file or list of files]
    env:
        [key]: [value]
    env_file: [file or list of env files]
    depends_on: [task or list of task names for dependencies]
    pipes: # see https://github.com/zifeo/whiz/blob/main/whiz.yaml
        [regex]: [destination]

请参阅此 文件 以获取完整示例。

CLI 选项

请参阅 whiz --help 以获取更多信息。

标志 描述
-f, --file <FILE> 指定配置文件
-h, --help 打印帮助信息
--list-jobs 列出所有可用的作业
-r, --run <JOB> 运行特定作业
-t, --timestamp 在日志中启用时间戳
-v, --verbose 启用详细模式
-V, --version 打印 whiz 版本

快捷键绑定

按键 操作
l, 右箭头 转到下一个标签
h, 左箭头 转到上一个标签
k, Ctrl + p 向上滚动一行
j, Ctrl + n 向下滚动一行
Ctrl + u 向上滚动半页
Ctrl + d 向下滚动半页
Ctrl + b 向上滚动整页
Ctrl + f 向下滚动整页
0 转到最后一个标签
1-9 转到指定位置的标签
q, Ctrl + c 退出程序
r 在当前标签中重新运行作业

开发

cargo run --

依赖项

~34–53MB
~1M SLoC