Make nix run .#vms.<system> work
				
					
				
			This commit is contained in:
		| @@ -39,7 +39,7 @@ | |||||||
|       inherit (builtins) mapAttrs; |       inherit (builtins) mapAttrs; | ||||||
|       inherit (lib) genAttrs mapAttrs'; |       inherit (lib) genAttrs mapAttrs'; | ||||||
|       inherit (lib.flake) defaultSystems eachDefaultSystem; |       inherit (lib.flake) defaultSystems eachDefaultSystem; | ||||||
|       inherit (lib.my) addPrefix; |       inherit (lib.my) addPrefix mkApp; | ||||||
|  |  | ||||||
|       extendLib = lib: lib.extend (final: prev: { |       extendLib = lib: lib.extend (final: prev: { | ||||||
|         my = import ./util.nix { lib = final; }; |         my = import ./util.nix { lib = final; }; | ||||||
| @@ -77,12 +77,7 @@ | |||||||
|  |  | ||||||
|       nixosConfigurations = import ./systems.nix { inherit lib pkgsFlakes inputs; modules = self.nixosModules; }; |       nixosConfigurations = import ./systems.nix { inherit lib pkgsFlakes inputs; modules = self.nixosModules; }; | ||||||
|       systems = mapAttrs (_: system: system.config.system.build.toplevel) self.nixosConfigurations; |       systems = mapAttrs (_: system: system.config.system.build.toplevel) self.nixosConfigurations; | ||||||
|       vms = mapAttrs (_: system: system.config.my.build.devVM) self.nixosConfigurations; |       vms = mapAttrs (name: system: system.config.my.build.devVM) self.nixosConfigurations; | ||||||
|  |  | ||||||
|       apps = |  | ||||||
|         let apps' = { } |  | ||||||
|           // addPrefix "vms/" (mapAttrs (name: vm: { type = "app"; program = "${vm}/bin/run-${name}-vm"; }) self.vms); |  | ||||||
|         in { x86_64-linux = apps'; }; |  | ||||||
|  |  | ||||||
|       devShell = genAttrs defaultSystems (system: |       devShell = genAttrs defaultSystems (system: | ||||||
|         let |         let | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, extendModules, modulesPath, baseModules, options, config, ... }: | { lib, extendModules, modulesPath, baseModules, options, config, ... }: | ||||||
| let | let | ||||||
|   inherit (lib) mkOption; |   inherit (lib) recursiveUpdate mkOption; | ||||||
|   inherit (lib.my) mkBoolOpt; |   inherit (lib.my) mkBoolOpt; | ||||||
|  |  | ||||||
|   cfg = config.my.build; |   cfg = config.my.build; | ||||||
| @@ -28,6 +28,7 @@ in | |||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   config.my.build = { |   config.my.build = { | ||||||
|     devVM = config.my.asDevVM.system.build.vm; |     # The meta.mainProgram should probably be set upstream but oh well... | ||||||
|  |     devVM = recursiveUpdate config.my.asDevVM.system.build.vm { meta.mainProgram = "run-${config.system.name}-vm"; }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								util.nix
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								util.nix
									
									
									
									
									
								
							| @@ -22,6 +22,7 @@ rec { | |||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   mkPkgs = path: args: genAttrs defaultSystems (system: import path (args // { inherit system; })); |   mkPkgs = path: args: genAttrs defaultSystems (system: import path (args // { inherit system; })); | ||||||
|  |   mkApp = program: { type = "app"; inherit program; }; | ||||||
|  |  | ||||||
|   mkOpt = type: default: mkOption { inherit type default; }; |   mkOpt = type: default: mkOption { inherit type default; }; | ||||||
|   mkBoolOpt = default: mkOption { |   mkBoolOpt = default: mkOption { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user