11.stylix/stylix/testbed/default.nix
Flameopathic 84e7ea0aa4
{nixvim,nvf}: add testbeds (#1579)
Link: https://github.com/nix-community/stylix/pull/1579

Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
Co-authored-by: awwpotato <awwpotato@voidq.com>
2025-07-10 11:02:34 -07:00

49 lines
1.2 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
];
};
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