dynix/package.nix

61 lines
1.2 KiB
Nix
Raw Normal View History

2026-01-21 15:23:04 +01:00
{
lib,
2026-02-11 13:16:54 +01:00
stdenvNoCC,
callPackage,
2026-01-21 15:23:04 +01:00
}: let
2026-02-11 13:16:54 +01:00
stdenv = stdenvNoCC;
2026-01-21 15:23:04 +01:00
in stdenv.mkDerivation (self: {
2026-02-11 13:16:54 +01:00
name = "dynix-modules";
2026-01-21 15:23:04 +01:00
strictDeps = true;
__structuredAttrs = true;
2026-02-11 13:16:54 +01:00
outputs = [ "out" "modules" ];
2026-01-21 15:23:04 +01:00
src = lib.fileset.toSource {
2026-02-11 13:16:54 +01:00
root = ./modules/dynamicism;
2026-01-21 15:23:04 +01:00
fileset = lib.fileset.unions [
2026-02-11 13:16:54 +01:00
./modules/dynamicism
2026-01-21 15:23:04 +01:00
];
};
2026-02-11 13:16:54 +01:00
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
2026-01-21 15:23:04 +01:00
2026-02-11 13:16:54 +01:00
installPhase = lib.dedent ''
mkdir -p "$out"
cp -r * "$out/"
2026-01-21 15:23:04 +01:00
2026-02-11 13:16:54 +01:00
mkdir -p "$modules/share/nixos/modules/dynix"
cp --reflink=auto -r "$out/"* "$modules/share/nixos/modules/dynix/"
'';
2026-01-21 15:23:04 +01:00
passthru.mkDevShell = {
2026-02-11 13:16:54 +01:00
path,
2026-01-21 15:23:04 +01:00
mkShell,
2026-02-11 13:16:54 +01:00
python3Packages,
2026-01-21 15:23:04 +01:00
}: let
2026-02-11 13:16:54 +01:00
mkShell' = mkShell.override { inherit stdenv; };
pyEnv = python3Packages.python.withPackages (p: [
p.beartype
]);
2026-01-21 15:23:04 +01:00
in mkShell' {
2026-02-11 13:16:54 +01:00
name = "devshell-for-${self.finalPackage.name}";
packages = [ pyEnv ];
env.PYTHONPATH = [
"${pyEnv}/${pyEnv.sitePackages}"
# Cursed.
"${path}/nixos/lib/test-driver/src"
] |> lib.concatStringsSep ":";
2026-01-21 15:23:04 +01:00
};
2026-02-11 13:16:54 +01:00
passthru.modulesPath = self.finalPackage.modules + "/share/nixos/modules";
2026-01-21 15:23:04 +01:00
2026-02-11 13:16:54 +01:00
passthru.tests = lib.fix (callPackage ./tests {
dynix = self.finalPackage;
}).packages;
2026-01-21 15:23:04 +01:00
meta = {
2026-02-11 13:16:54 +01:00
outputsToInstall = [ "modules" ];
2026-01-21 15:23:04 +01:00
};
2026-02-11 13:16:54 +01:00
})