{ 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 -p "$out" cp -r * "$out/" mkdir -p "$modules/share/nixos/modules/dynix" cp --reflink=auto -r "$out/"* "$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.modulesPath = self.finalPackage.modules + "/share/nixos/modules"; passthru.tests = lib.fix (callPackage ./tests { dynix = self.finalPackage; }).packages; meta = { outputsToInstall = [ "modules" ]; }; })