restore old files now!

This commit is contained in:
Qyriad 2026-02-16 18:02:39 +01:00
parent 76b5ac628d
commit dfdf027bc6
11 changed files with 1676 additions and 16 deletions

View file

@ -1,38 +1,65 @@
{
lib,
stdenvNoCC,
clangStdenv,
callPackage,
linkFarm,
rustHooks,
rustPackages,
versionCheckHook,
}: lib.callWith' rustPackages ({
rustPlatform,
cargo,
}: let
stdenv = stdenvNoCC;
stdenv = clangStdenv;
cargoToml = lib.importTOML ./Cargo.toml;
cargoPackage = cargoToml.package;
in stdenv.mkDerivation (finalAttrs: let
self = finalAttrs.finalPackage;
in {
name = "dynix-modules";
pname = cargoPackage.name;
version = cargoPackage.version;
strictDeps = true;
__structuredAttrs = true;
outputs = [ "out" "modules" ];
src = lib.fileset.toSource {
doCheck = true;
doInstallCheck = true;
modulesSrc = lib.fileset.toSource {
root = ./modules/dynamicism;
fileset = lib.fileset.unions [
./modules/dynamicism
];
};
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./Cargo.toml
./Cargo.lock
./src
];
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = rustHooks.asList ++ [
cargo
];
nativeInstallCheckInputs = [
versionCheckHook
];
modulesOut = "${placeholder "modules"}/share/nixos/modules/dynix";
installPhase = lib.dedent ''
runHook preInstall
mkdir -p "$out"
cp -r * "$out/"
mkdir -p "$modules/share/nixos/modules/dynix"
cp --reflink=auto -r "$out/"* "$modulesOut/"
postInstall = lib.dedent ''
mkdir -p "$modulesOut"
cp -r "$modulesSrc/"* "$modulesOut/"
'';
passthru.mkDevShell = {
@ -46,7 +73,12 @@ in {
]);
in mkShell' {
name = "devshell-for-${self.name}";
packages = [ pyEnv ];
inputsFrom = [ self ];
packages = [
pyEnv
rustPackages.rustc
rustPackages.rustfmt
];
env.PYTHONPATH = [
"${pyEnv}/${pyEnv.sitePackages}"
# Cursed.
@ -55,6 +87,7 @@ in {
};
passthru.modulesPath = self.modules + "/share/nixos/modules";
passthru.dynix = self.modulesPath + "/dynix";
passthru.tests = lib.fix (callPackage ./tests {
dynix = self;
@ -67,6 +100,7 @@ in {
Default output contains the modules at top-level, meant for `import`.
The `modules` output contains the modules prefixed under `/share/nixos/modules/dynix`.
'';
outputsToInstall = [ "modules" ];
mainProgram = "dynix";
outputsToInstall = [ "out" "modules" ];
};
})
}))