zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
let
  impureEval = builtins ? currentSystem;
  defaultSystem = if impureEval then builtins.currentSystem else "x86_64-linux";

  self =
    (import ./.)
    // (
      if impureEval then
        (fetchGit {
          name = "nixosConfig";
          url = ./.;
        })
      else
        { outPath = ./.; }
    );
  npins = import ./npins;
  overlays = import ./overlays { inherit npins; };
  nixosConfigurations = import ./machines { inherit npins lib self; };
  lib = (import "${npins.nixpkgs}/lib").extend (
    final: prev: {
      zpha = import ./lib {
        inherit npins;
        lib = prev;
      };
    }
  );

in
{

  inherit
    self
    npins
    lib
    overlays
    nixosConfigurations
    ;

  resources = import ./resources { inherit lib; };
  sopsSecrets = import ./secrets { inherit lib; };
  nixosModules = import ./nixosModules { inherit lib; };

  formatter =
    {
      system ? defaultSystem,
    }:
    (import npins.nixpkgs {
      inherit system;
    }).nixfmt;

  packages =
    {
      system ? defaultSystem,
    }:
    let
      pkgs = import npins.nixpkgs {
        inherit system;
        overlays = overlays.default;
      };
    in
    (
      (import ./packages pkgs)
      // (builtins.listToAttrs (
        lib.flatten [
          (lib.flip lib.mapAttrsToList nixosConfigurations (
            machineName: nixosConfiguration:
            (
              let
                attrs = {
                  systemConfig = nixosConfiguration.config;
                };
              in
              [
                (lib.nameValuePair "deploySystem-${machineName}" (pkgs.zpha.deploySystem.override attrs))
                (lib.nameValuePair "setupDisk-${machineName}" (pkgs.zpha.setupDisk.override attrs))
              ]
            )
          ))
        ]
      ))
    );

}