diff options
| author | Franck Cuny <franck@fcuny.net> | 2025-05-10 09:56:40 -0700 |
|---|---|---|
| committer | Franck Cuny <franck@fcuny.net> | 2025-05-10 10:33:46 -0700 |
| commit | efa3978fe52b1b71ae7acf32088657dc5414452e (patch) | |
| tree | 6a93f4ede0519faf3a27f31f0a7a0db72e162f4e /flake.nix | |
| parent | add utmctl to path (diff) | |
| download | infra-efa3978fe52b1b71ae7acf32088657dc5414452e.tar.gz | |
add flake-checker to pre-commit hooks
Refactor the configuration to ensure we generate the configuration for
pre-commit hooks properly in the devShell.
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 90 |
1 files changed, 47 insertions, 43 deletions
@@ -83,60 +83,62 @@ mkSystem = import ./nix/lib/mkSystem.nix { inherit nixpkgs inputs overlays; }; - in - { - # nix fmt - formatter = forAllSystems ( + + # Create a treefmt-nix evaluation for a system + mkTreefmtEval = system: let pkgs = getPkgs system; - treefmtEval = treefmt-nix.lib.evalModule pkgs { - projectRootFile = "flake.nix"; - programs = { - nixfmt.enable = true; - actionlint.enable = true; - deadnix.enable = true; - }; - }; in - treefmtEval.config.build.wrapper - ); + treefmt-nix.lib.evalModule pkgs { + projectRootFile = "flake.nix"; + programs = { + nixfmt.enable = true; + actionlint.enable = true; + deadnix.enable = true; + }; + }; - # Checks for each system - checks = forAllSystems ( - system: + # Create pre-commit hooks for a system and source + mkPreCommitHooks = + system: src: let - pkgs = getPkgs system; - treefmtEval = treefmt-nix.lib.evalModule pkgs { - projectRootFile = "flake.nix"; - programs = { - nixfmt.enable = true; - actionlint.enable = true; - deadnix.enable = true; - }; - }; + treefmtEval = mkTreefmtEval system; in - { - pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { - src = ./.; - hooks = { - actionlint.enable = true; - check-merge-conflicts.enable = true; - deadnix.enable = true; - detect-private-keys.enable = true; - end-of-file-fixer.enable = true; - mixed-line-endings.enable = true; - shellcheck.enable = true; - treefmt = { - enable = true; - entry = "${treefmtEval.config.build.wrapper}/bin/treefmt --ci"; - }; - trim-trailing-whitespace.enable = true; + inputs.pre-commit-hooks.lib.${system}.run { + inherit src; + hooks = { + actionlint.enable = true; + check-merge-conflicts.enable = true; + deadnix.enable = true; + detect-private-keys.enable = true; + end-of-file-fixer.enable = true; + mixed-line-endings.enable = true; + shellcheck.enable = true; + flake-checker.enable = true; + treefmt = { + enable = true; + entry = "${treefmtEval.config.build.wrapper}/bin/treefmt --ci"; }; + trim-trailing-whitespace.enable = true; }; - } + }; + in + { + # nix fmt + formatter = forAllSystems ( + system: + let + treefmtEval = mkTreefmtEval system; + in + treefmtEval.config.build.wrapper ); + # nix flake check + checks = forAllSystems (system: { + pre-commit-check = mkPreCommitHooks system ./.; + }); + # my personal MacBook Air darwinConfigurations.mba-m2 = mkSystem "mba-m2" { system = "aarch64-darwin"; @@ -156,6 +158,7 @@ system: let pkgs = getPkgs system; + pre-commit-check = mkPreCommitHooks system ./.; # Scripts that are specific to darwin darwinScripts = @@ -208,6 +211,7 @@ in { default = pkgs.mkShellNoCC { + inherit (pre-commit-check) shellHook; # This is the key line packages = with pkgs; [ |
