Link: https://github.com/nix-community/stylix/pull/1700 Reviewed-by: awwpotato <awwpotato@voidq.com>
52 lines
1.4 KiB
Nix
52 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
lib,
|
|
modules ? import ./autoload.nix { inherit pkgs lib; },
|
|
}:
|
|
let
|
|
makeTestbed =
|
|
name: testbed:
|
|
let
|
|
system = lib.nixosSystem {
|
|
inherit (pkgs) system;
|
|
|
|
modules =
|
|
[
|
|
./modules/common.nix
|
|
./modules/enable.nix
|
|
./modules/application.nix
|
|
inputs.self.nixosModules.stylix
|
|
inputs.home-manager.nixosModules.home-manager
|
|
testbed
|
|
|
|
# modules for external targets
|
|
inputs.nvf.nixosModules.default
|
|
inputs.nixvim.nixosModules.nixvim
|
|
inputs.spicetify-nix.nixosModules.spicetify
|
|
]
|
|
++ map (name: import ./graphical-environments/${name}.nix) (
|
|
import ./available-graphical-environments.nix { inherit lib; }
|
|
);
|
|
};
|
|
in
|
|
pkgs.writeShellApplication {
|
|
inherit name;
|
|
text = ''
|
|
cleanup() {
|
|
if rm --recursive "$directory"; then
|
|
printf '%s\n' 'Virtualisation disk image removed.'
|
|
fi
|
|
}
|
|
|
|
# We create a temporary directory rather than a temporary file, since
|
|
# temporary files are created empty and are not valid disk images.
|
|
directory="$(mktemp --directory)"
|
|
trap cleanup EXIT
|
|
|
|
NIX_DISK_IMAGE="$directory/nixos.qcow2" \
|
|
${lib.getExe system.config.system.build.vm}
|
|
'';
|
|
};
|
|
in
|
|
builtins.mapAttrs makeTestbed modules
|