/ flake.nix
flake.nix
1 { 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 }; 5 6 outputs = 7 { self, nixpkgs, ... }: 8 let 9 inherit (nixpkgs) lib; 10 11 eachSystem = f: lib.genAttrs systems (s: f nixpkgs.legacyPackages.${s}); 12 systems = [ 13 "x86_64-linux" 14 "aarch64-linux" 15 "x86_64-darwin" 16 "aarch64-darwin" 17 ]; 18 in 19 { 20 packages = eachSystem (pkgs: { 21 docs = pkgs.callPackage ./docs.nix { inherit nixpkgs self; }; 22 docsWithUpstream = pkgs.callPackage ./docs.nix { 23 inherit nixpkgs self; 24 withUpstreamModule = true; 25 }; 26 27 generate = pkgs.writeShellScriptBin "generate" '' 28 cat ${self.packages.${pkgs.system}.docs} > nixos-options.md 29 cat ${self.packages.${pkgs.system}.docsWithUpstream} > nixos-options-combined.md 30 ''; 31 }); 32 33 lib = import ./lib.nix { inherit lib; }; 34 35 nixosModules.default = ./module.nix; 36 37 formatter = eachSystem ( 38 pkgs: 39 pkgs.treefmt.withConfig { 40 settings = lib.mkMerge [ 41 ./treefmt.nix 42 { _module.args = { inherit pkgs; }; } 43 ]; 44 } 45 ); 46 47 checks = eachSystem (pkgs: { 48 packages = pkgs.linkFarm "packages" self.packages.${pkgs.system}; 49 fmt = pkgs.runCommandNoCCLocal "fmt-check" { } '' 50 cp -r --no-preserve=mode ${self} repo 51 ${lib.getExe self.formatter.${pkgs.system}} -C repo --ci 52 touch $out 53 ''; 54 docs = pkgs.runCommandNoCCLocal "docs-check" { } '' 55 diff -U3 --color=auto ${./nixos-options.md} ${self.packages.${pkgs.system}.docs} 56 diff -U3 --color=auto ${./nixos-options-combined.md} ${ 57 self.packages.${pkgs.system}.docsWithUpstream 58 } 59 touch $out 60 ''; 61 }); 62 }; 63 }