nftable-migration
1{
2 self,
3 inputs,
4 outputs,
5 stateVersion,
6 ...
7}:
8{
9 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
10 # Function for generating home-manage configs
11 mkHome =
12 {
13 hostname,
14 user,
15 desktop ? null,
16 system ? "x86_64-linux",
17 }:
18 let
19 globals = import ../globals.nix {
20 inherit (inputs.nixpkgs) lib;
21 inherit hostname;
22 };
23 in
24 inputs.home-manager.lib.homeManagerConfiguration {
25 pkgs = inputs.nixpkgs.legacyPackages.${system};
26 extraSpecialArgs = {
27 inherit
28 self
29 inputs
30 outputs
31 stateVersion
32 hostname
33 desktop
34 globals
35 ;
36 username = user;
37 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
38 };
39 modules = [
40 ../home
41 ];
42 };
43
44 newMkHost =
45 {
46 hostname,
47 system ? "x86_64-linux",
48 pkgsInput ? inputs.nixpkgs,
49 }:
50 let
51 globals = import ../globals.nix {
52 inherit (pkgsInput) lib;
53 inherit hostname;
54 };
55 specialArgs = {
56 inherit
57 self
58 inputs
59 outputs
60 stateVersion
61 hostname
62 globals
63 system
64 ;
65 libx = import ./functions.nix { inherit (pkgsInput) lib; };
66 };
67 in
68 pkgsInput.lib.nixosSystem {
69 inherit specialArgs;
70 inherit system;
71 modules = [
72 self.nixosModules.wireguard-client
73 self.nixosModules.wireguard-server
74 self.nixosModules.govanityurl
75 self.nixosModules.gosmee
76 inputs.agenix.nixosModules.default
77 ../systems/new.nix
78 ];
79 };
80
81 # Function for generating host configs
82 mkHost =
83 {
84 hostname,
85 desktop ? null,
86 hardwareType ? "",
87 system ? "x86_64-linux",
88 pkgsInput ? inputs.nixpkgs,
89 homeInput ? inputs.home-manager,
90 }:
91 let
92 globals = import ../globals.nix {
93 inherit (pkgsInput) lib;
94 inherit hostname;
95 };
96 specialArgs = {
97 inherit
98 self
99 inputs
100 outputs
101 stateVersion
102 hostname
103 desktop
104 hardwareType
105 system
106 globals
107 ;
108 libx = import ./functions.nix { inherit (pkgsInput) lib; };
109 };
110 in
111 pkgsInput.lib.nixosSystem {
112 inherit specialArgs;
113 inherit system;
114 modules = [
115 self.nixosModules.wireguard-client
116 self.nixosModules.wireguard-server
117 self.nixosModules.govanityurl
118 self.nixosModules.gosmee
119 inputs.agenix.nixosModules.default
120 inputs.lanzaboote.nixosModules.lanzaboote
121 homeInput.nixosModules.home-manager
122 {
123 home-manager.extraSpecialArgs = specialArgs;
124 home-manager.useGlobalPkgs = true;
125 home-manager.useUserPackages = true;
126 }
127 ../systems
128 ];
129 };
130
131 # Function for generating host configs
132 mkRPIHost =
133 {
134 hostname,
135 desktop ? null,
136 hardwareType ? "",
137 pkgsInput ? inputs.nixpkgs-25_05,
138 homeInput ? inputs.home-manager-25_05,
139 nixos-raspberrypi ? inputs.nixos-raspberrypi,
140 }:
141 let
142 system = "aarch64-linux";
143 globals = import ../globals.nix {
144 inherit (pkgsInput) lib;
145 inherit hostname;
146 };
147 specialArgs = {
148 inherit
149 self
150 inputs
151 outputs
152 stateVersion
153 hostname
154 desktop
155 hardwareType
156 system
157 globals
158 nixos-raspberrypi
159 ;
160 libx = import ./functions.nix { inherit (pkgsInput) lib; };
161 };
162 in
163 inputs.nixos-raspberrypi.lib.nixosSystemFull {
164 inherit specialArgs;
165 inherit system;
166 modules = [
167 (
168 { ... }:
169 {
170 imports = with inputs.nixos-raspberrypi.nixosModules; [
171 raspberry-pi-5.base
172 raspberry-pi-5.bluetooth
173 raspberry-pi-5.page-size-16k
174 raspberry-pi-5.display-vc4
175 ];
176 }
177 )
178 self.nixosModules.wireguard-client
179 self.nixosModules.wireguard-server
180 self.nixosModules.govanityurl
181 self.nixosModules.gosmee
182 inputs.agenix.nixosModules.default
183 inputs.lanzaboote.nixosModules.lanzaboote
184 homeInput.nixosModules.home-manager
185 {
186 home-manager.extraSpecialArgs = specialArgs;
187 home-manager.useGlobalPkgs = true;
188 home-manager.useUserPackages = true;
189 }
190 ../systems
191 ];
192 };
193
194 # Function to create a system manager
195 mkSystemManager =
196 {
197 system ? "x86_64-linux",
198 hostname,
199 desktop ? null,
200 pkgsInput ? inputs.nixpkgs,
201 homeInput ? inputs.home-manager,
202 }:
203 let
204 globals = import ../globals.nix {
205 inherit (pkgsInput) lib;
206 inherit hostname;
207 };
208 extraSpecialArgs = {
209 inherit
210 self
211 inputs
212 outputs
213 stateVersion
214 hostname
215 desktop
216 globals
217 ;
218 libx = import ./functions.nix { inherit (pkgsInput) lib; };
219 };
220 in
221 inputs.system-manager.lib.makeSystemConfig {
222 inherit extraSpecialArgs;
223 modules = [
224 # self.nixosModules.wireguard-client
225 # inputs.agenix.nixosModules.default
226 homeInput.nixosModules.home-manager
227 {
228 config = {
229 nixpkgs.hostPlatform = system;
230 system-manager.allowAnyDistro = true;
231 };
232 }
233 ../systems/system-manager.nix
234 ];
235 };
236}