68 lines
1.1 KiB
Nix
68 lines
1.1 KiB
Nix
{
|
|
stdenvNoCC,
|
|
lib,
|
|
type,
|
|
}:
|
|
|
|
assert lib.elem type [
|
|
"mod"
|
|
"soundpack"
|
|
"tileset"
|
|
];
|
|
|
|
{
|
|
modName,
|
|
version,
|
|
src,
|
|
...
|
|
}@args:
|
|
|
|
stdenvNoCC.mkDerivation (
|
|
args
|
|
// rec {
|
|
pname = args.pname or "cataclysm-dda-${type}-${modName}";
|
|
|
|
modRoot = args.modRoot or ".";
|
|
|
|
configurePhase =
|
|
args.configurePhase or ''
|
|
runHook preConfigure
|
|
runHook postConfigure
|
|
'';
|
|
|
|
buildPhase =
|
|
args.buildPhase or ''
|
|
runHook preBuild
|
|
runHook postBuild
|
|
'';
|
|
|
|
checkPhase =
|
|
args.checkPhase or ''
|
|
runHook preCheck
|
|
runHook postCheck
|
|
'';
|
|
|
|
installPhase =
|
|
let
|
|
baseDir =
|
|
{
|
|
mod = "mods";
|
|
soundpack = "sound";
|
|
tileset = "gfx";
|
|
}
|
|
.${type};
|
|
in
|
|
args.installPhase or ''
|
|
runHook preInstall
|
|
destdir="$out/share/cataclysm-dda/${baseDir}"
|
|
mkdir -p "$destdir"
|
|
cp -R "${modRoot}" "$destdir/${modName}"
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru = {
|
|
forTiles = true;
|
|
forCurses = type == "mod";
|
|
};
|
|
}
|
|
)
|