summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2021-12-17 13:15:55 +0100
committerRobert Hensing <robert@roberthensing.nl>2021-12-17 13:19:16 +0100
commitf72432aeb2a3aa1d75bd56204571fb394fcc9abb (patch)
treeed80b0b7f8e11d4cf4ce05f6fc76052548c2a5e8
parent8fd49c116bcd256263c7aad8ca5d4b7fa10d4ca2 (diff)
downloadnixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar.gz
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar.bz2
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar.lz
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar.xz
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.tar.zst
nixpkgs-f72432aeb2a3aa1d75bd56204571fb394fcc9abb.zip
nixos: Move build-vm into virtualisation.vmVariant
... which is like a specialisation, but for nixos-rebuild build-vm
-rw-r--r--nixos/default.nix22
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/virtualisation/build-vm.nix46
3 files changed, 49 insertions, 20 deletions
diff --git a/nixos/default.nix b/nixos/default.nix
index 01605e1d577..27a0fd73ecd 100644
--- a/nixos/default.nix
+++ b/nixos/default.nix
@@ -9,24 +9,6 @@ let
     modules = [ configuration ];
   };
 
-  # This is for `nixos-rebuild build-vm'.
-  vm = eval.extendModules {
-    modules = [ ./modules/virtualisation/qemu-vm.nix ];
-  };
-
-  # This is for `nixos-rebuild build-vm-with-bootloader'.
-  vmWithBootLoader = vm.extendModules {
-    modules = [
-      ({ config, ... }: {
-        _file = "nixos/default.nix##vmWithBootLoader";
-        virtualisation.useBootLoader = true;
-        virtualisation.useEFIBoot =
-          config.boot.loader.systemd-boot.enable ||
-          config.boot.loader.efi.canTouchEfiVariables;
-      })
-    ];
-  };
-
 in
 
 {
@@ -34,7 +16,7 @@ in
 
   system = eval.config.system.build.toplevel;
 
-  vm = vm.config.system.build.vm;
+  vm = eval.config.virtualisation.vmVariant.system.build.vm;
 
-  vmWithBootLoader = vmWithBootLoader.config.system.build.vm;
+  vmWithBootLoader = eval.config.virtualisation.vmVariantWithBootLoader.system.build.vm;
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index cb2dd530de1..5fa8220fa0e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1179,6 +1179,7 @@
   ./tasks/powertop.nix
   ./testing/service-runner.nix
   ./virtualisation/anbox.nix
+  ./virtualisation/build-vm.nix
   ./virtualisation/container-config.nix
   ./virtualisation/containerd.nix
   ./virtualisation/containers.nix
diff --git a/nixos/modules/virtualisation/build-vm.nix b/nixos/modules/virtualisation/build-vm.nix
new file mode 100644
index 00000000000..d856b1b502b
--- /dev/null
+++ b/nixos/modules/virtualisation/build-vm.nix
@@ -0,0 +1,46 @@
+{ extendModules, lib, ... }:
+let
+
+  inherit (lib)
+    mkOption
+    ;
+
+  vmVariant = extendModules {
+    modules = [ ./qemu-vm.nix ];
+  };
+
+  vmVariantWithBootLoader = vmVariant.extendModules {
+    modules = [
+      ({ config, ... }: {
+        _file = "nixos/default.nix##vmWithBootLoader";
+        virtualisation.useBootLoader = true;
+        virtualisation.useEFIBoot =
+          config.boot.loader.systemd-boot.enable ||
+          config.boot.loader.efi.canTouchEfiVariables;
+      })
+    ];
+  };
+in
+{
+  options = {
+
+    virtualisation.vmVariant = mkOption {
+      description = ''
+        Machine configuration to be added for the vm script produced by <literal>nixos-rebuild build-vm</literal>.
+      '';
+      inherit (vmVariant) type;
+      default = {};
+      visible = "shallow";
+    };
+
+    virtualisation.vmVariantWithBootLoader = mkOption {
+      description = ''
+        Machine configuration to be added for the vm script produced by <literal>nixos-rebuild build-vm-with-bootloader</literal>.
+      '';
+      inherit (vmVariantWithBootLoader) type;
+      default = {};
+      visible = "shallow";
+    };
+
+  };
+}