From ae6812767c6fcfe202d5904996b0a49e58461593 Mon Sep 17 00:00:00 2001 From: Preston Pan Date: Wed, 4 Mar 2026 01:56:58 -0800 Subject: add merge hook --- flake.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 48e79bf..c7b5186 100644 --- a/flake.nix +++ b/flake.nix @@ -18,10 +18,39 @@ let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; + + pre-commit-check = git-hooks.lib.${system}.run { src = ./.; hooks = { deadnix.enable = true; + website-build-check = { + enable = true; + name = "website-build"; + description = "Ensure website can build, and tests links"; + stages = [ "post-merge" ]; + entry = "${pkgs.writeShellScript "website-check" '' +BRANCH=$(git branch --show-current) +if [ "$BRANCH" != "main" ]; then + exit 0 +fi +RESULT_PATH=$(nix build .#website --no-link --print-out-paths) +if [ -d "$RESULT_PATH" ]; then + echo "Running lychee link check..." + mkdir -p results + # Run lychee on the output directory + # --output results/lychee_report.md (or .txt, .json) + ${pkgs.lychee}/bin/lychee "$RESULT_PATH" \ + --verbose || echo "Lychee found broken links." +else + echo "Website build failed, skipping lychee." + exit 1 +fi +''}"; + pass_filenames = false; + always_run = true; + }; + prevent-direct-main-commits = { enable = true; name = "Prevent direct commits to main"; @@ -64,6 +93,7 @@ fi dvisvgm; }) ]; + buildPhase = '' export HOME=$TMPDIR/fake-home mkdir -p $HOME/.emacs.d -- cgit v1.3