{ 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" ]; }; })