dynix/tests/mk-test-configuration-dot-nix.nix

64 lines
1.9 KiB
Nix
Raw Normal View History

2026-02-11 13:19:59 +01:00
{
lib,
stdenvNoCC,
}: let
stdenv = stdenvNoCC;
mkDynixConfigurationDotNix = finalAttrs: {
name,
configuration,
}: assert lib.isStringLike configuration; let
self = finalAttrs.finalPackage;
in {
name = "configuration-dot-nix-for-${name}";
strictDeps = true;
__structuredAttrs = true;
preferLocalBuild = true;
phases = [ "installPhase" ];
#outputs = [ "out" "modules" ];
outputs = [ "out" ];
modulesOut = "${placeholder "out"}/share/nixos";
#modulesOut = "${placeholder "modules"}/share/nixos/modules";
baseConfiguration = configuration;
installPhase = ''
runHook preInstall
install -Dm a=r "$baseConfiguration" "$modulesOut/test-configuration.nix"
install -Dm a=r "${./dynix-vm-configuration.nix}" "$modulesOut/dynix-vm-configuration.nix"
echo "/** GENERATED BY mk-test-configuration-dot-nix! */" >> "$modulesOut/configuration.nix"
echo "{ ... }:" >> "$modulesOut/configuration.nix"
echo >> "$modulesOut/configuration.nix"
echo >> "$modulesOut/configuration.nix"
echo "{" >> "$modulesOut/configuration.nix"
echo " imports = [" >> "$modulesOut/configuration.nix"
echo " ./test-configuration.nix" >> "$modulesOut/configuration.nix"
echo " ./dynix-vm-configuration.nix" >> "$modulesOut/configuration.nix"
echo " ./hardware-configuration.nix" >> "$modulesOut/configuration.nix"
echo " ];" >> "$modulesOut/configuration.nix"
echo "}" >> "$modulesOut/configuration.nix"
#mkdir -p "$out"
#cp -r --reflink=auto "$modulesOut/"* "$out/"
runHook postInstall
'';
passthru = {
modulesPath = self.out + "/share/nixos";
configuration = self.out + "/share/nixos/configuration.nix";
};
meta = {
#outputsToInstall = [ "modules" ];
};
};
in lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
extendDrvArgs = mkDynixConfigurationDotNix;
}