2 个版本
0.1.1 | 2023 年 1 月 16 日 |
---|---|
0.1.0 | 2023 年 1 月 16 日 |
#1304 在 开发工具
11KB
152 行
flake-watcher
每次文件更改时构建本地 flake。
flake-watcher 将打印每个新的输出路径到 stdout。错误将被记录到 stderr。
安装
要运行而不安装,可以使用
nix run github:zebreus/flake-watcher
您可以使用 nix profile install github:zebreus/flake-watcher
安装 flake。flake-watcher 也在 crates.io 上提供。
示例
在当前目录中运行 flake 的默认可安装版本。这将每次 flake 中的文件更改时构建默认可安装版本。
$ flake-watcher .#default
/nix/store/wgjr46wxma9cl9wa5csxn22p9vk81rw7-flake-watcher-0.1.0
/nix/store/liin7xdrpd6zj246yz2nrzm9qhgr0ycx-flake-watcher-0.1.0
/nix/store/4cixv5qz39v20a4mazzbm2g4bb64y9l8-flake-watcher-0.1.0
查看所有选项
$ flake-watcher --help
Usage: flake-watcher [OPTIONS] [INSTALLABLE] [-- <NIX_BUILD_OPTIONS>...]
Arguments:
[INSTALLABLE] The flake output that will get watched. Example: .#foo
[NIX_BUILD_OPTIONS]... Additional options passed to nix build
Options:
--skip-initial-build Usually the flake is build once after starting flake-watcher even if no changes were made. This option skips that initial build
-h, --help Print help
-V, --version Print version
动机
我想构建一个带有 nix flake 的文档,并且每次我修改源文件时它都会更新。我还想能够在 CI 中使用相同的 flake 来构建文档。最初我计划在 flake-watcher 中集成一个重新加载的 web 服务器,但我决定保持简单,只打印新的输出路径到 stdout。这样您可以将输出管道到任何其他您想要的程序。此外,我已经在这方面浪费了足够的时间,也许以后我会添加一个 web 服务器。
# The flake output contains html files that get hosted with a reloading webserver
export TEMP_DIR=$(mktemp -d)
nix run nixpkgs#python39Packages.livereload $TEMP_DIR &
flake-watcher | xargs -I {} cp -Trf {} $TEMP_DIR
依赖关系
~1.6–9MB
~74K SLoC