diff --git a/pkgs/sane-scripts/default.nix b/pkgs/sane-scripts/default.nix index c4110987..248bc7de 100644 --- a/pkgs/sane-scripts/default.nix +++ b/pkgs/sane-scripts/default.nix @@ -35,6 +35,8 @@ resholve.mkDerivation { keep = { # we write here: keep it "/tmp/rmlint.sh" = true; + # intentionally escapes (into user code) + "$external_cmd" = true; }; fake = { external = [ diff --git a/pkgs/sane-scripts/src/bin/sane-dev-cargo-loop b/pkgs/sane-scripts/src/bin/sane-dev-cargo-loop new file mode 100755 index 00000000..9189f084 --- /dev/null +++ b/pkgs/sane-scripts/src/bin/sane-dev-cargo-loop @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# watches PWD for any changes underneath it and re-runs `cargo build --a> +# optionally, provide your own build command as the first argument + +external_cmd="cargo build --all" +if [ "x$1" != "x" ] +then + external_cmd=$1 +fi + +inotifywait -mr \ + --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' \ + -e close_write ./ | +while read -r date time dir file +do + $external_cmd +done