diff --git a/shell.nix b/shell.nix index 2a52153..2583f15 100644 --- a/shell.nix +++ b/shell.nix @@ -10,12 +10,23 @@ let nixpkgs-fmt.enable = true; }; }; + + update-sources = pkgs.writeShellScriptBin "update-sources" '' + set -e + git diff --exit-code -s nix/sources.json || (echo "File nix/sources.json has unstaged changes, refusing to update." >&2 && exit 1) + git diff --cached --exit-code -s nix/sources.json || (echo "File nix/sources.json has staged changes, refusing to update." >&2 && exit 1) + niv update + git diff --exit-code -s nix/sources.json && echo "Already up to date." && exit 0 + git commit -m "Update sources" nix/sources.json + ''; in pkgs.mkShell { - nativeBuildInputs = with pkgs; [ + nativeBuildInputs = (with pkgs; [ git niv nixpkgs-fmt + ]) ++ [ + update-sources ]; shellHook = '' ${pre-commit-check.shellHook}