nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix

61 lines
1.8 KiB
Nix
Raw Normal View History

2021-06-29 02:42:37 +00:00
{ stdenv, dwarf-therapist, dwarf-fortress, substituteAll, coreutils, wrapQtAppsHook }:
2016-01-12 18:17:46 +00:00
let
2021-06-29 02:42:37 +00:00
platformSlug =
if stdenv.targetPlatform.is32bit then
"linux32" else "linux64";
inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini";
2016-01-12 18:17:46 +00:00
in
2019-08-13 21:52:01 +00:00
stdenv.mkDerivation {
2022-01-11 12:50:16 +00:00
pname = "dwarf-therapist";
2022-11-16 11:21:34 +00:00
inherit (dwarf-therapist) version meta;
2021-06-29 02:42:37 +00:00
wrapper = substituteAll {
src = ./dwarf-therapist.in;
stdenv_shell = "${stdenv.shell}";
rm = "${coreutils}/bin/rm";
ln = "${coreutils}/bin/ln";
cat = "${coreutils}/bin/cat";
mkdir = "${coreutils}/bin/mkdir";
dirname = "${coreutils}/bin/dirname";
therapist = "${dwarf-therapist}";
};
2016-01-12 18:17:46 +00:00
paths = [ dwarf-therapist ];
2016-01-12 18:17:46 +00:00
2021-06-29 02:42:37 +00:00
nativeBuildInputs = [ wrapQtAppsHook ];
2016-01-12 18:17:46 +00:00
passthru = { inherit dwarf-fortress dwarf-therapist; };
buildCommand = ''
mkdir -p $out/bin
2021-06-29 02:42:37 +00:00
install -Dm755 $wrapper $out/bin/dwarftherapist
ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist
2016-01-12 18:17:46 +00:00
2021-06-29 02:42:37 +00:00
substituteInPlace $out/bin/dwarftherapist \
--subst-var-by install $out
wrapQtApp $out/bin/dwarftherapist
# Fix up memory layouts
rm -rf $out/share/dwarftherapist/memory_layouts/linux
2016-01-12 18:17:46 +00:00
mkdir -p $out/share/dwarftherapist/memory_layouts/linux
orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8)
patched_md5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8)
input_file="${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile}"
output_file="$out/share/dwarftherapist/memory_layouts/${inifile}"
echo "[Dwarf Therapist Wrapper] Fixing Dwarf Fortress MD5 prefix:"
echo " Input: $input_file"
echo " Search: $orig_md5"
echo " Output: $output_file"
echo " Replace: $patched_md5"
substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5"
2016-01-12 18:17:46 +00:00
'';
preferLocalBuild = true;
2016-01-12 18:17:46 +00:00
}