Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 68 lines 1.1 kB view raw
1{ 2 stdenvNoCC, 3 lib, 4 type, 5}: 6 7assert lib.elem type [ 8 "mod" 9 "soundpack" 10 "tileset" 11]; 12 13{ 14 modName, 15 version, 16 src, 17 ... 18}@args: 19 20stdenvNoCC.mkDerivation ( 21 args 22 // rec { 23 pname = args.pname or "cataclysm-dda-${type}-${modName}"; 24 25 modRoot = args.modRoot or "."; 26 27 configurePhase = 28 args.configurePhase or '' 29 runHook preConfigure 30 runHook postConfigure 31 ''; 32 33 buildPhase = 34 args.buildPhase or '' 35 runHook preBuild 36 runHook postBuild 37 ''; 38 39 checkPhase = 40 args.checkPhase or '' 41 runHook preCheck 42 runHook postCheck 43 ''; 44 45 installPhase = 46 let 47 baseDir = 48 { 49 mod = "mods"; 50 soundpack = "sound"; 51 tileset = "gfx"; 52 } 53 .${type}; 54 in 55 args.installPhase or '' 56 runHook preInstall 57 destdir="$out/share/cataclysm-dda/${baseDir}" 58 mkdir -p "$destdir" 59 cp -R "${modRoot}" "$destdir/${modName}" 60 runHook postInstall 61 ''; 62 63 passthru = { 64 forTiles = true; 65 forCurses = type == "mod"; 66 }; 67 } 68)