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