···11-#!/usr/bin/env bash
22-33-set -o nounset
44-55-# shellcheck source=/dev/null
66-source "${stdenv}/setup"
77-88-mkdir -p "${out}/share/keen4"
99-unzip -j "$dist" -d "${out}/share/keen4"
1010-1111-mkdir -p "${out}/bin"
1212-cat > "${out}/bin/keen4" <<EOF
1313-#! $SHELL -e
1414-if test -z "\$HOME"; then
1515- echo "HOME directory not set"
1616- exit 1
1717-fi
1818-1919-# Game wants to write in the current directory, but of course we can't
2020-# let it write in the Nix store. So create symlinks to the game files
2121-# in ~/.keen4 and execute game from there.
2222-mkdir -p \$HOME/.keen4
2323-cd \$HOME/.keen4
2424-2525-ln -sf "${out}/share/keen4/"* .
2626-2727-"${dosbox}/bin/dosbox" ./KEEN4E.EXE -fullscreen -exit || true
2828-2929-# Cleanup the symlinks.
3030-for i in *; do
3131- if test -L "\$i"; then
3232- rm "\$i"
3333- fi
3434-done
3535-EOF
3636-chmod +x "${out}/bin/keen4"
+32-3
pkgs/games/keen4/default.nix
···2233stdenv.mkDerivation {
44 name = "keen4";
55- builder = ./builder.sh;
6577- dist = fetchurl {
66+ src = fetchurl {
87 url = "http://tarballs.nixos.org/keen4.zip";
98 sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
109 };
11101211 nativeBuildInputs = [ unzip ];
13121414- inherit dosbox;
1313+ installPhase = ''
1414+ mkdir -p $out/share/keen4
1515+ mv * $out/share/keen4
1616+1717+ mkdir -p $out/bin
1818+ cat > $out/bin/keen4 <<EOF
1919+ #! $SHELL -e
2020+ if test -z "\$HOME"; then
2121+ echo "HOME directory not set"
2222+ exit 1
2323+ fi
2424+2525+ # Game wants to write in the current directory, but of course we can't
2626+ # let it write in the Nix store. So create symlinks to the game files
2727+ # in ~/.keen4 and execute game from there.
2828+ mkdir -p \$HOME/.keen4
2929+ cd \$HOME/.keen4
3030+3131+ ln -sf $out/share/keen4/* .
3232+3333+ ${dosbox}/bin/dosbox ./KEEN4E.EXE -fullscreen -exit || true
3434+3535+ # Cleanup the symlinks.
3636+ for i in *; do
3737+ if test -L "\$i"; then
3838+ rm "\$i"
3939+ fi
4040+ done
4141+ EOF
4242+ chmod +x $out/bin/keen4
4343+ '';
15441645 meta = {
1746 description = "Commander Keen Episode 4: Secret of the Oracle";