vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / virtualisation / build-vm.nix
blob7e279a27364dab7381bb02a70b77d7f424a697be
1 { config, extendModules, lib, ... }:
2 let
4   inherit (lib)
5     mkOption
6     ;
8   vmVariant = extendModules {
9     modules = [ ./qemu-vm.nix ];
10   };
12   vmVariantWithBootLoader = vmVariant.extendModules {
13     modules = [
14       ({ config, ... }: {
15         _file = "nixos/default.nix##vmWithBootLoader";
16         virtualisation.useBootLoader = true;
17         virtualisation.useEFIBoot =
18           config.boot.loader.systemd-boot.enable ||
19           config.boot.loader.efi.canTouchEfiVariables;
20       })
21     ];
22   };
25   options = {
27     virtualisation.vmVariant = mkOption {
28       description = ''
29         Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm`.
30       '';
31       inherit (vmVariant) type;
32       default = {};
33       visible = "shallow";
34     };
36     virtualisation.vmVariantWithBootLoader = mkOption {
37       description = ''
38         Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm-with-bootloader`.
39       '';
40       inherit (vmVariantWithBootLoader) type;
41       default = {};
42       visible = "shallow";
43     };
45   };
47   config = {
49     system.build = {
50       vm = lib.mkDefault config.virtualisation.vmVariant.system.build.vm;
51       vmWithBootLoader = lib.mkDefault config.virtualisation.vmVariantWithBootLoader.system.build.vm;
52     };
54   };
56   # uses extendModules
57   meta.buildDocsInSandbox = false;