1{ configuration ? import ./lib/from-env.nix "NIXOS_CONFIG" <nixos-config>
2, system ? builtins.currentSystem
3}:
4
5let
6
7 eval = import ./lib/eval-config.nix {
8 inherit system;
9 modules = [ configuration ];
10 };
11
12 # This is for `nixos-rebuild build-vm'.
13 vmConfig = (import ./lib/eval-config.nix {
14 inherit system;
15 modules = [ configuration ./modules/virtualisation/qemu-vm.nix ];
16 }).config;
17
18 # This is for `nixos-rebuild build-vm-with-bootloader'.
19 vmWithBootLoaderConfig = (import ./lib/eval-config.nix {
20 inherit system;
21 modules =
22 [ configuration
23 ./modules/virtualisation/qemu-vm.nix
24 { virtualisation.useBootLoader = true; }
25 ({ config, ... }: {
26 virtualisation.useEFIBoot =
27 config.boot.loader.systemd-boot.enable ||
28 config.boot.loader.efi.canTouchEfiVariables;
29 })
30 ];
31 }).config;
32
33in
34
35{
36 inherit (eval) pkgs config options;
37
38 system = eval.config.system.build.toplevel;
39
40 vm = vmConfig.system.build.vm;
41
42 vmWithBootLoader = vmWithBootLoaderConfig.system.build.vm;
43}