diff options
Diffstat (limited to 'pkgs/games/keen4/default.nix')
-rw-r--r-- | pkgs/games/keen4/default.nix | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix index 59bb30d627f..5e2468a8f9e 100644 --- a/pkgs/games/keen4/default.nix +++ b/pkgs/games/keen4/default.nix @@ -2,16 +2,45 @@ stdenv.mkDerivation { name = "keen4"; - builder = ./builder.sh; - dist = fetchurl { + src = fetchurl { url = "http://tarballs.nixos.org/keen4.zip"; sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1"; }; nativeBuildInputs = [ unzip ]; - inherit dosbox; + installPhase = '' + mkdir -p $out/share/keen4 + mv * $out/share/keen4 + + mkdir -p $out/bin + cat > $out/bin/keen4 <<EOF + #! $SHELL -e + if test -z "\$HOME"; then + echo "HOME directory not set" + exit 1 + fi + + # Game wants to write in the current directory, but of course we can't + # let it write in the Nix store. So create symlinks to the game files + # in ~/.keen4 and execute game from there. + mkdir -p \$HOME/.keen4 + cd \$HOME/.keen4 + + ln -sf $out/share/keen4/* . + + ${dosbox}/bin/dosbox ./KEEN4E.EXE -fullscreen -exit || true + + # Cleanup the symlinks. + for i in *; do + if test -L "\$i"; then + rm "\$i" + fi + done + EOF + chmod +x $out/bin/keen4 + ''; meta = { description = "Commander Keen Episode 4: Secret of the Oracle"; |