significantly improve purity

This commit is contained in:
Qyriad 2026-02-09 14:32:56 +01:00
parent 45a7d43f77
commit 68e9b9a1e4
12 changed files with 139 additions and 230 deletions

61
modules-package.nix Normal file
View file

@ -0,0 +1,61 @@
{
lib,
stdenvNoCC,
callPackage,
}: let
stdenv = stdenvNoCC;
in stdenv.mkDerivation (self: {
name = "dynix-modules";
strictDeps = true;
__structuredAttrs = true;
outputs = [ "out" "modules" ];
src = lib.fileset.toSource {
root = ./modules/dynamicism;
fileset = lib.fileset.unions [
./modules/dynamicism
];
};
phases = [ "unpackPhase" "patchPhase" "installPhase "];
installPhase = lib.dedent ''
mkdir -vp "$out"
cp -rv * "$out/"
#mkdir -vp "$modules/share/nix/modules/dynix"
#cp --reflink=auto -rv * "$modules/share/nix/modules/dynix/"
mkdir -vp "$modules/share/nixos/modules/dynix"
cp --reflink=auto -rv * "$modules/share/nixos/modules/dynix/"
'';
passthru.mkDevShell = {
path,
mkShell,
python3Packages,
}: let
mkShell' = mkShell.override { inherit stdenv; };
pyEnv = python3Packages.python.withPackages (p: [
p.beartype
]);
in mkShell' {
name = "devshell-for-${self.finalPackage.name}";
packages = [ pyEnv ];
env.PYTHONPATH = [
"${pyEnv}/${pyEnv.sitePackages}"
# Cursed.
"${path}/nixos/lib/test-driver/src"
] |> lib.concatStringsSep ":";
};
passthru.tests = lib.fix (callPackage ./tests {
dynix = self.finalPackage;
}).packages;
meta = {
outputsToInstall = [ "modules" ];
};
})