2022-01-19 23:45:15 +00:00
|
|
|
{ config, 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 {
|
2024-04-21 15:54:59 +00:00
|
|
|
description = ''
|
2022-08-12 12:06:08 +00:00
|
|
|
Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm`.
|
2022-01-19 23:45:15 +00:00
|
|
|
'';
|
|
|
|
inherit (vmVariant) type;
|
|
|
|
default = {};
|
|
|
|
visible = "shallow";
|
|
|
|
};
|
|
|
|
|
|
|
|
virtualisation.vmVariantWithBootLoader = mkOption {
|
2024-04-21 15:54:59 +00:00
|
|
|
description = ''
|
2022-08-12 12:06:08 +00:00
|
|
|
Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm-with-bootloader`.
|
2022-01-19 23:45:15 +00:00
|
|
|
'';
|
|
|
|
inherit (vmVariantWithBootLoader) type;
|
|
|
|
default = {};
|
|
|
|
visible = "shallow";
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
|
|
|
|
|
|
|
system.build = {
|
|
|
|
vm = lib.mkDefault config.virtualisation.vmVariant.system.build.vm;
|
|
|
|
vmWithBootLoader = lib.mkDefault config.virtualisation.vmVariantWithBootLoader.system.build.vm;
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
# uses extendModules
|
|
|
|
meta.buildDocsInSandbox = false;
|
|
|
|
}
|