diff options
author | Robert Hensing <robert@roberthensing.nl> | 2021-12-17 13:15:55 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2021-12-17 13:19:16 +0100 |
commit | f72432aeb2a3aa1d75bd56204571fb394fcc9abb (patch) | |
tree | ed80b0b7f8e11d4cf4ce05f6fc76052548c2a5e8 | |
parent | 8fd49c116bcd256263c7aad8ca5d4b7fa10d4ca2 (diff) | |
download | nixpkgs-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.nix | 22 | ||||
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/virtualisation/build-vm.nix | 46 |
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"; + }; + + }; +} |