diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2023-12-07 20:32:45 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2023-12-07 20:32:45 +0100 |
commit | da6a7d5c69aa3e8b70755e88be0f44b642422114 (patch) | |
tree | bb64c8f76a0655b0967d73d7de3541fe2825aa57 /flake.nix | |
parent | 26ba0280e38648a787a5ef60807f91765c40d1d5 (diff) | |
download | nixos-da6a7d5c69aa3e8b70755e88be0f44b642422114.tar nixos-da6a7d5c69aa3e8b70755e88be0f44b642422114.tar.gz nixos-da6a7d5c69aa3e8b70755e88be0f44b642422114.tar.bz2 nixos-da6a7d5c69aa3e8b70755e88be0f44b642422114.tar.xz nixos-da6a7d5c69aa3e8b70755e88be0f44b642422114.zip |
bump
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 79 |
1 files changed, 53 insertions, 26 deletions
@@ -19,12 +19,24 @@ | |||
19 | # ref = "nixos-unstable"; | 19 | # ref = "nixos-unstable"; |
20 | ref = "ppp-systemd"; | 20 | ref = "ppp-systemd"; |
21 | }; | 21 | }; |
22 | nixpkgs-stable = { | 22 | nixpkgs-pgbackrest = { |
23 | type = "github"; | 23 | type = "github"; |
24 | owner = "NixOS"; | 24 | owner = "NixOS"; |
25 | repo = "nixpkgs"; | 25 | repo = "nixpkgs"; |
26 | ref = "23.05"; | 26 | ref = "23.05"; |
27 | }; | 27 | }; |
28 | nixpkgs-stable = { | ||
29 | type = "github"; | ||
30 | owner = "NixOS"; | ||
31 | repo = "nixpkgs"; | ||
32 | ref = "23.11"; | ||
33 | }; | ||
34 | nixpkgs-eostre = { | ||
35 | type = "github"; | ||
36 | owner = "NixOS"; | ||
37 | repo = "nixpkgs"; | ||
38 | ref = "23.11"; | ||
39 | }; | ||
28 | home-manager = { | 40 | home-manager = { |
29 | type = "github"; | 41 | type = "github"; |
30 | # owner = "nix-community"; | 42 | # owner = "nix-community"; |
@@ -97,23 +109,35 @@ | |||
97 | nixpkgs.follows = "nixpkgs"; | 109 | nixpkgs.follows = "nixpkgs"; |
98 | }; | 110 | }; |
99 | }; | 111 | }; |
112 | poetry2nix = { | ||
113 | type = "github"; | ||
114 | owner = "nix-community"; | ||
115 | repo = "poetry2nix"; | ||
116 | ref = "master"; | ||
117 | inputs = { | ||
118 | flake-utils.follows = "flake-utils"; | ||
119 | nixpkgs.follows = "nixpkgs"; | ||
120 | }; | ||
121 | }; | ||
100 | 122 | ||
101 | ca-util = { | 123 | ca-util = { |
102 | type = "gitlab"; | 124 | type = "gitlab"; |
103 | owner = "gkleen"; | 125 | owner = "gkleen"; |
104 | repo = "ca"; | 126 | repo = "ca"; |
105 | ref = "v2.1.0"; | 127 | ref = "v2.3.3"; |
106 | inputs = { | 128 | inputs = { |
107 | nixpkgs.follows = "nixpkgs"; | 129 | nixpkgs.follows = "nixpkgs"; |
130 | poetry2nix.follows = "poetry2nix"; | ||
108 | }; | 131 | }; |
109 | }; | 132 | }; |
110 | backup-utils = { | 133 | backup-utils = { |
111 | type = "gitlab"; | 134 | type = "gitlab"; |
112 | owner = "gkleen"; | 135 | owner = "gkleen"; |
113 | repo = "backup-utils"; | 136 | repo = "backup-utils"; |
114 | ref = "v0.1.0"; | 137 | ref = "v0.1.2"; |
115 | inputs = { | 138 | inputs = { |
116 | nixpkgs.follows = "nixpkgs"; | 139 | nixpkgs.follows = "nixpkgs"; |
140 | poetry2nix.follows = "poetry2nix"; | ||
117 | }; | 141 | }; |
118 | }; | 142 | }; |
119 | prometheus-borg-exporter = { | 143 | prometheus-borg-exporter = { |
@@ -123,6 +147,7 @@ | |||
123 | ref = "main"; | 147 | ref = "main"; |
124 | inputs = { | 148 | inputs = { |
125 | nixpkgs.follows = "nixpkgs"; | 149 | nixpkgs.follows = "nixpkgs"; |
150 | poetry2nix.follows = "poetry2nix"; | ||
126 | }; | 151 | }; |
127 | }; | 152 | }; |
128 | }; | 153 | }; |
@@ -133,7 +158,7 @@ | |||
133 | inherit (nixpkgs) lib; | 158 | inherit (nixpkgs) lib; |
134 | utils = import ./utils { inherit lib; }; | 159 | utils = import ./utils { inherit lib; }; |
135 | inherit (utils) nixImport overrideModule; | 160 | inherit (utils) nixImport overrideModule; |
136 | inherit (lib) nixosSystem mkIf splitString filterAttrs listToAttrs mapAttrsToList nameValuePair concatMap composeManyExtensions mapAttrs mapAttrs' recursiveUpdate genAttrs unique elem optionalAttrs isDerivation concatLists concatStringsSep fix filter makeOverridable foldr; | 161 | inherit (lib) mkIf splitString filterAttrs listToAttrs mapAttrsToList nameValuePair concatMap composeManyExtensions mapAttrs mapAttrs' recursiveUpdate genAttrs unique elem optionalAttrs isDerivation concatLists concatStringsSep fix filter makeOverridable foldr; |
137 | inherit (lib.strings) escapeNixString hasSuffix; | 162 | inherit (lib.strings) escapeNixString hasSuffix; |
138 | 163 | ||
139 | accountUserName = accountName: | 164 | accountUserName = accountName: |
@@ -149,29 +174,31 @@ | |||
149 | 174 | ||
150 | mkOverlay = path: final: prev: import path ({ inherit final; inherit prev; flakeInputs = inputs; flake = self; } // mkSources prev); | 175 | mkOverlay = path: final: prev: import path ({ inherit final; inherit prev; flakeInputs = inputs; flake = self; } // mkSources prev); |
151 | 176 | ||
152 | mkNixosConfiguration = addProfiles: dir: path: hostName: nixosSystem rec { | 177 | mkNixosConfiguration = addProfiles: dir: path: hostName: |
153 | specialArgs = { | 178 | let inherit ((inputs."nixpkgs-${hostName}" or inputs.nixpkgs).lib) nixosSystem; |
154 | flake = self; | 179 | in nixosSystem rec { |
155 | flakeInputs = inputs; | 180 | specialArgs = { |
156 | path = ./.; | 181 | flake = self; |
182 | flakeInputs = inputs; | ||
183 | path = ./.; | ||
184 | }; | ||
185 | modules = | ||
186 | let | ||
187 | defaultProfiles = with self.nixosModules.systemProfiles; | ||
188 | [ core | ||
189 | ]; | ||
190 | |||
191 | local = dir + "/${path}"; | ||
192 | argsModule = { pkgs, ... }: { | ||
193 | _module.args = { | ||
194 | customUtils = utils; | ||
195 | inherit hostName; | ||
196 | } // mkSources pkgs; | ||
197 | }; | ||
198 | accountModules = attrValues (filterAttrs accountMatchesHost self.nixosModules.accounts); | ||
199 | accountMatchesHost = n: _v: accountHostName n == hostName; | ||
200 | in attrValues (filterAttrs (n: _v: !(elem n ["systemProfiles" "users" "userProfiles" "accounts"])) self.nixosModules) ++ [ argsModule ] ++ defaultProfiles ++ addProfiles ++ [ local ] ++ accountModules; | ||
157 | }; | 201 | }; |
158 | modules = | ||
159 | let | ||
160 | defaultProfiles = with self.nixosModules.systemProfiles; | ||
161 | [ core | ||
162 | ]; | ||
163 | |||
164 | local = dir + "/${path}"; | ||
165 | argsModule = { pkgs, ... }: { | ||
166 | _module.args = { | ||
167 | customUtils = utils; | ||
168 | inherit hostName; | ||
169 | } // mkSources pkgs; | ||
170 | }; | ||
171 | accountModules = attrValues (filterAttrs accountMatchesHost self.nixosModules.accounts); | ||
172 | accountMatchesHost = n: _v: accountHostName n == hostName; | ||
173 | in attrValues (filterAttrs (n: _v: !(elem n ["systemProfiles" "users" "userProfiles" "accounts"])) self.nixosModules) ++ [ argsModule ] ++ defaultProfiles ++ addProfiles ++ [ local ] ++ accountModules; | ||
174 | }; | ||
175 | 202 | ||
176 | mkSystemProfile = dir: path: profileName: { | 203 | mkSystemProfile = dir: path: profileName: { |
177 | imports = [ (dir + "/${path}") ]; | 204 | imports = [ (dir + "/${path}") ]; |