{inputs, ...}: { # debug = true; # We only define machines config in this flake yet, so we only include # the module that builds these. This file might get fuller, if we need to # build our own packages, that are not flakes. imports = [ ./nixos/flake-module.nix inputs.pre-commit-hooks.flakeModule # To import a flake module # 1. Add foo to inputs # 2. Add foo as a parameter to the outputs function # 3. Add here: foo.flakeModule ]; systems = ["x86_64-linux"]; perSystem = { config, inputs', pkgs, ... }: { devShells.default = config.pre-commit.devShell; pre-commit = let generatedFiles = [ "hardware-configuration\\.nix" ]; in { check.enable = true; pkgs = inputs'.nixpkgs.legacyPackages; settings = { # for some reason statix takes it config differently than all the other hooks. settings.statix = { format = "stderr"; ignore = generatedFiles; }; hooks = { nil.enable = true; statix.enable = true; deadnix = { enable = true; excludes = generatedFiles; }; alejandra.enable = true; }; }; }; # Per-system attributes can be defined here. The self' and inputs' # module parameters provide easy access to attributes of the same # system. }; # Equivalent to inputs'.nixpkgs.legacyPackages.hello; # flake = { # The usual flake attributes can be defined here, including system- # agnostic ones like nixosModule and system-enumerating ones, although # those are more easily expressed in perSystem. # }; }