diff options
Diffstat (limited to '')
| -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; [ |
