3 个版本 (重大更新)
0.3.0 | 2022 年 4 月 13 日 |
---|---|
0.2.0 | 2022 年 4 月 11 日 |
0.1.0 | 2022 年 4 月 11 日 |
#12 in #receiving
31KB
655 代码行
Witness
命令行实用工具,允许您在响应以下情况时执行任意命令:
- 文件更改
- UDP 数据包和 TCP 连接
安装
使用 Cargo
这需要安装 Rust 工具链。(安装指南).
cargo install witness
动机
在编写代码时,通常需要您在编辑文件的同时运行编译器/构建工具,以便捕捉错误。在编辑器和终端之间切换来回可能会很快变得乏味且耗时。
witness
帮助加快这个工作流程:您只需保存当前正在工作的文件,然后监视命令运行。
用法
等待文件被修改并运行您选择的构建工具
$ witness cargo build
仅监视具有这些特定扩展名的文件
$ witness -e rs cargo build
监视特定目录内的文件
$ witness --path src cargo build
请注意,任何放在引号("..."
)内的内容都将传递到您的默认 shell,这意味着您在终端中熟悉的所有内容在这里也可以使用!这包括管道,如果您想首先查看错误,这可能很有用。
witness "cargo check |& less"
其他触发器
witness
是基于这样一个想法构建的:您可能拥有比仅仅编辑-编译-调试更复杂的流程。除了文件系统更改外,witness
还可以配置为在 UDP 和 TCP 套接字上查找 IP 请求。如果您需要在单个终端中运行的命令触发其他终端中的命令,这可能很有用。
以下我们将探讨一个典型的工作流程,该流程涉及使用 Web 服务器。对于此用例,我们保持一个终端用于编辑-编译-调试工作流程,另一个终端用于在后台实际运行我们的服务器。
在我们的服务器运行终端中,我们运行以下命令:
$ witness --udp=1234 cargo run
这告诉 witness
每次在端口 1234 上收到 UDP 数据包时重建并重新运行您的服务器。
在我们的另一个终端中,然后运行以下命令:
$ witness "cargo check && witness --trigger --udp=1234"
这将反复运行 cargo check
,因为我们对代码进行更改。如果我们的代码成功编译,witness
就会通过向端口 1234 发送 UDP 数据包来触发另一个终端。
依赖项
~9–21MB
~259K SLoC