packages/catalog: expose simulacrum checks differently

This commit is contained in:
Max Headroom 2024-07-23 20:07:16 +02:00
parent 84c7cc1635
commit 4cfabc0e7b

View file

@ -1,21 +1,32 @@
{ lib, ... }: { lib, ... }:
{ {
perSystem = { config, ... }: { perSystem = { config, pkgs, ... }: {
catalog.depot = { catalog = lib.mkMerge (lib.mapAttrsToList (name': check: let
checks = lib.mapAttrs (name: check: { simulacrum = lib.hasPrefix "simulacrum-" name';
description = "NixOS Test: ${name}"; name = lib.removePrefix "simulacrum-" name';
actions = { baseAttrPath = if simulacrum then
build = { [ "cluster" "simulacrum" ]
description = "Build this check."; else
command = "nix build -L --no-link '${builtins.unsafeDiscardStringContext check.drvPath}^*'"; [ "depot" "checks" ];
}; in lib.setAttrByPath (baseAttrPath ++ [ name ]) {
runInteractive = { description = if simulacrum then
description = "Run interactive driver."; "Simulacrum Test: ${name}"
command = lib.getExe check.driverInteractive; else
}; "NixOS Test: ${name}";
actions = {
build = {
description = "Build this check.";
command = "nix build -L --no-link '${builtins.unsafeDiscardStringContext check.drvPath}^*'";
}; };
}) config.checks; runInteractive = {
}; description = "Run interactive driver.";
command = if simulacrum then
"${pkgs.bubblewrap}/bin/bwrap --unshare-all --bind / / --dev-bind /dev /dev ${lib.getExe check.driverInteractive}"
else
lib.getExe check.driverInteractive;
};
};
}) config.checks);
}; };
} }