ctucx.git: nixfiles

ctucx' nixfiles

commit 849c14355f85325df4af67d835e4af1ee7d8b706
parent 4604ec69c13cbe2c28d79b141b4be4fef4de7fbe
Author: Katja (ctucx) <git@ctu.cx>
Date: Mon, 10 Mar 2025 12:28:48 +0100

flake: refactor `haumea.lib.load` usage
1 file changed, 41 insertions(+), 68 deletions(-)
M
flake.nix
|
109
++++++++++++++++++++++++++++++-------------------------------------------------
diff --git a/flake.nix b/flake.nix
@@ -19,51 +19,46 @@
       )
     );
 
-    loadDir = path: inputs.haumea.lib.load {
-      src         = path;
-      loader      = inputs.haumea.lib.loaders.path;
-      transformer = transformer;
-    };
-
-  in {
+    pathLoader   = inputs.haumea.lib.loaders.path;
+    importLoader = inputs.haumea.lib.loaders.verbatim;
+    pkgsLoader   = pkgs: (path: path: pkgs.callPackage path {});
 
-    nodes = inputs.haumea.lib.load {
-      src         = ./machines;
-      loader      = inputs.haumea.lib.loaders.verbatim;
-      transformer = transformer;
-    };
+    loadDir      = loader: src: inputs.haumea.lib.load { inherit src loader transformer; };
 
-    ctucxConfig = rec {
-      homeManager = loadDir ./configurations/homeManager;
-      common      = (loadDir ./configurations/common) // { inherit homeManager; };
-      nixos       = nixpkgsLib.recursiveUpdate common (loadDir ./configurations/nixos);
-      darwin      = nixpkgsLib.recursiveUpdate common (loadDir ./configurations/darwin);
-    };
+  in {
 
-    lib = inputs.haumea.lib.load {
-      src         = ./lib;
-      loader      = path: path: import path inputs;
-      transformer = transformer;
-    };
+    packages      = forAllSystems (pkgs: ((loadDir (pkgsLoader pkgs) ./pkgs/all) // (if pkgs.stdenv.isDarwin then (loadDir (pkgsLoader pkgs) ./pkgs/darwin) else {})));
+    checks        = builtins.mapAttrs (system: deployLib: deployLib.deployChecks inputs.self.deploy) (nixpkgsLib.filterAttrs (key: value: key != "x86_64-darwin") inputs.deploy-rs.lib);
 
-    nixosModules       = loadDir ./modules/nixos;
-    darwinModules      = loadDir ./modules/darwin;
+    nixosModules  = loadDir pathLoader ./modules/nixos;
+    darwinModules = loadDir pathLoader ./modules/darwin;
 
     overlays.nixpkgsUnstable = final: prev: { unstable = inputs.nixpkgsUnstable.legacyPackages.${prev.system}; };
     overlays.darwinOverlay   = import ./pkgs/darwinOverlay.nix;
+    overlays.packages        = final: prev: loadDir (path: path: final.callPackage path {}) ./pkgs/all;
+    overlays.darwinPackages  = final: prev: loadDir (path: path: final.callPackage path {}) ./pkgs/darwin;
 
-    overlays.packages = final: prev: inputs.haumea.lib.load {
-      src         = ./pkgs/all;
-      loader      = path: path: final.callPackage path {};
-      transformer = transformer;
-    };
+    nodes         = loadDir importLoader ./machines;
+    lib           = loadDir (path: path: import path inputs) ./lib;
 
-    overlays.darwinPackages = final: prev: inputs.haumea.lib.load {
-      src         = ./pkgs/darwin;
-      loader      = path: path: final.callPackage path {};
-      transformer = transformer;
+    ctucxConfig   = rec {
+      homeManager = loadDir pathLoader ./configurations/homeManager;
+      common      = (loadDir pathLoader ./configurations/common ) // { inherit homeManager; };
+      nixos       = nixpkgsLib.recursiveUpdate common (loadDir pathLoader ./configurations/nixos);
+      darwin      = nixpkgsLib.recursiveUpdate common (loadDir pathLoader ./configurations/darwin);
     };
 
+
+    deploy.nodes = builtins.mapAttrs (nodeName: node: {
+      hostname = inputs.self.nixosConfigurations."${nodeName}".config.networking.fqdn;
+      sshUser  = "root";
+      sshOpts  = [ "-p" "${builtins.toString (nixpkgsLib.head inputs.self.nixosConfigurations."${nodeName}".config.services.openssh.ports)}" ];
+      profiles.system = {
+        user = "root";
+        path = inputs.deploy-rs.lib.${inputs.self.nodes.${nodeName}.system}.activate.nixos inputs.self.nixosConfigurations."${nodeName}";
+      };
+    }) inputs.self.nixosConfigurations;
+
     nixosConfigurations = builtins.mapAttrs (nodeName: node: nixpkgsLib.nixosSystem {
       system = node.system;
 

@@ -107,18 +102,8 @@
     }) (nixpkgsLib.filterAttrs (name: machine: nixpkgsLib.strings.hasSuffix "linux" machine.system) inputs.self.nodes);
 
     darwinConfigurations = builtins.mapAttrs (nodeName: node: inputs.nixDarwin.lib.darwinSystem {
-      pkgs = import inputs.nixpkgsDarwin {
-        system   = node.system;
-        overlays = [
-          inputs.self.overlays.nixpkgsUnstable
-          inputs.self.overlays.packages
-          inputs.self.overlays.darwinPackages
-          inputs.self.overlays.darwinOverlay
-
-          inputs.ctucxWebsite.overlays.default
-        ];
-      };
-
+      system = node.system;
+        
       specialArgs = {
         inputs      = inputs;
         ctucxConfig = inputs.self.ctucxConfig.darwin;

@@ -127,6 +112,14 @@
       };
 
       modules = [
+        { nixpkgs.overlays = [
+          inputs.self.overlays.nixpkgsUnstable
+          inputs.self.overlays.packages
+          inputs.self.overlays.darwinPackages
+          inputs.self.overlays.darwinOverlay
+
+          inputs.ctucxWebsite.overlays.default
+        ]; }
         inputs.lixModule.nixosModules.default
         inputs.homeManager.darwinModules.default
         inputs.agenix.darwinModules.default

@@ -137,27 +130,6 @@
 
     }) (nixpkgsLib.filterAttrs (name: machine: nixpkgsLib.strings.hasSuffix "darwin" machine.system) inputs.self.nodes);
 
-    deploy.nodes = builtins.mapAttrs (nodeName: node: {
-      hostname = inputs.self.nixosConfigurations."${nodeName}".config.networking.fqdn;
-      sshUser  = "root";
-      sshOpts  = [ "-p" "${builtins.toString (nixpkgsLib.head inputs.self.nixosConfigurations."${nodeName}".config.services.openssh.ports)}" ];
-      profiles.system = {
-        user = "root";
-        path = inputs.deploy-rs.lib.${inputs.self.nodes.${nodeName}.system}.activate.nixos inputs.self.nixosConfigurations."${nodeName}";
-      };
-    }) inputs.self.nixosConfigurations;
-
-    packages = forAllSystems (pkgs: let
-      loader = path: path: pkgs.callPackage path {};
-    in (inputs.haumea.lib.load {
-      inherit loader transformer;
-      src = ./pkgs/all;
-    }) // (if pkgs.stdenv.isDarwin then (inputs.haumea.lib.load {
-      inherit loader transformer;
-      src = ./pkgs/darwin;
-    }) else {}));
-
-    checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks inputs.self.deploy) (nixpkgsLib.lib.filterAttrs (key: value: key != "x86_64-darwin") inputs.deploy-rs.lib);
   };
 
   inputs = {

@@ -255,4 +227,4 @@
     firefoxGnomeTheme.url   = "github:rafaelmardojai/firefox-gnome-theme/v135";
   };
 
-}
+}+
\ No newline at end of file