{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, pkgs, system, ... }: { devShells.default = config.pre-commit.devShell; pre-commit = let generatedFiles = [ "hardware-configuration\\.nix" ]; in { check.enable = true; settings = { hooks = { nil.enable = true; statix = { enable = true; settings = { format = "stderr"; ignore = generatedFiles; }; }; deadnix = { enable = true; excludes = generatedFiles; }; alejandra.enable = true; }; }; }; formatter = pkgs.alejandra; # Per-system attributes can be defined here. The self' and inputs' # module parameters provide easy access to attributes of the same # system. _module.args.pkgs = import inputs.nixpkgs { inherit system; config.permittedInsecurePackages = ["jitsi-meet-1.0.8043"]; overlays = [ (_: _: { alias-to-sieve = inputs.alias-to-sieve.packages.x86_64-linux.default; # add custom package to convert alias files to sieve scripts on the stalwart machine }) ]; }; }; # 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. # }; }