From a25e7a64ff19829a5bf839b11f8f0441f94fd7e9 Mon Sep 17 00:00:00 2001 From: Henri Dohmen Date: Sat, 4 Apr 2026 15:08:45 +0200 Subject: [PATCH] further improvements --- flake.nix | 81 +++++++++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 48 deletions(-) diff --git a/flake.nix b/flake.nix index 7c93e1f..509ae57 100644 --- a/flake.nix +++ b/flake.nix @@ -76,32 +76,27 @@ ++ (if isServer then [ ] else [ ./home ]); }; - # Not exposed as flake outputs because they depend on specialArgs - # if you add a host, make sure to add it to var/default.nix as well - nixosModules = { - "solo" = mkModule { entry = ./host/solo; }; - "c2" = mkModule { entry = ./host/c2; }; - "fw" = mkModule { entry = ./host/fw; }; - "roam" = mkModule { - entry = ./host/roam; - isServer = true; - }; - }; + nixosModules = + lib.genAttrs var.desktops (host: mkModule { entry = ./host/${host}; }) + // lib.genAttrs var.servers ( + host: + mkModule { + entry = ./host/${host}; + isServer = true; + } + ); in { nixosConfigurations = - let - mkDesktop = host: { - name = host; - value = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - inherit specialArgs; - modules = [ (nixosModules.${host}) ]; - }; - }; - in - lib.listToAttrs (map mkDesktop var.desktops) + lib.genAttrs var.desktops ( + host: + nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + inherit specialArgs; + modules = [ nixosModules.${host} ]; + } + ) // { "test-vm" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -117,36 +112,26 @@ }; }; - colmenaHive = colmena.lib.makeHive { - meta = { - nixpkgs = import nixpkgs { - system = "x86_64-linux"; + colmenaHive = colmena.lib.makeHive ( + { + meta = { + nixpkgs = import nixpkgs { system = "x86_64-linux"; }; + inherit specialArgs; }; - inherit specialArgs; - }; - "roam" = { - deployment = { - targetHost = "185.163.117.158"; - buildOnTarget = true; + "roam" = { + deployment = { + targetHost = "185.163.117.158"; + buildOnTarget = true; + }; + imports = [ nixosModules."roam" ]; }; - imports = [ nixosModules."roam" ]; - }; - "solo" = { + } + // lib.genAttrs var.desktops (host: { deployment.targetHost = null; deployment.allowLocalDeployment = true; - imports = [ nixosModules."solo" ]; - }; - "c2" = { - deployment.targetHost = null; - deployment.allowLocalDeployment = true; - imports = [ nixosModules."c2" ]; - }; - "fw" = { - deployment.targetHost = null; - deployment.allowLocalDeployment = true; - imports = [ nixosModules."fw" ]; - }; - }; + imports = [ nixosModules.${host} ]; + }) + ); } // flake-utils.lib.eachDefaultSystem ( system: