2022-10-31 11:04:38 +01:00
|
|
|
{ system ? builtins.currentSystem, vmPkgsPath, buildPkgsPath, nixosConfigPath }:
|
2018-09-23 14:09:35 +02:00
|
|
|
|
|
|
|
let
|
2022-10-31 11:04:38 +01:00
|
|
|
buildPkgs = import buildPkgsPath { };
|
|
|
|
vmPkgs' = import vmPkgsPath { };
|
2018-09-23 14:09:35 +02:00
|
|
|
vmPkgs = vmPkgs' // {
|
|
|
|
runtimeShell = "${vmPkgs'.bash}/${vmPkgs'.bash.shellPath}";
|
|
|
|
};
|
|
|
|
|
2022-10-31 11:04:38 +01:00
|
|
|
importWithPkgs = { path, pkgs }:
|
|
|
|
args:
|
|
|
|
import path (args // { inherit pkgs; });
|
|
|
|
|
|
|
|
nixosConfig = importWithPkgs {
|
|
|
|
path = "${nixosConfigPath}";
|
|
|
|
pkgs = vmPkgs;
|
|
|
|
};
|
|
|
|
vmConfig = importWithPkgs {
|
|
|
|
path = "${buildPkgsPath}/nixos/modules/virtualisation/qemu-vm.nix";
|
|
|
|
pkgs = vmPkgs;
|
|
|
|
};
|
|
|
|
evalConfig = importWithPkgs {
|
|
|
|
path = "${vmPkgsPath}/nixos/lib/eval-config.nix";
|
|
|
|
pkgs = null;
|
|
|
|
};
|
2018-09-23 14:09:35 +02:00
|
|
|
|
|
|
|
vmWithBootLoaderConfigMixed = (evalConfig {
|
|
|
|
modules = [
|
|
|
|
nixosConfig
|
|
|
|
vmConfig
|
2022-10-31 11:04:38 +01:00
|
|
|
{ virtualisation.useBootLoader = true; }
|
2018-09-23 14:09:35 +02:00
|
|
|
|
|
|
|
];
|
|
|
|
}).config;
|
2022-10-31 11:04:38 +01:00
|
|
|
in { vmWithBootLoaderMixed = vmWithBootLoaderConfigMixed.system.build.vm; }
|