keen4: convert away from builder.sh

main
Sandro Jäckel 3 years ago
parent a80d35d02a
commit 046ac66948
No known key found for this signature in database
GPG Key ID: 3AF5A43A3EECC2E5
  1. 36
      pkgs/games/keen4/builder.sh
  2. 35
      pkgs/games/keen4/default.nix

@ -1,36 +0,0 @@
#!/usr/bin/env bash
set -o nounset
# shellcheck source=/dev/null
source "${stdenv}/setup"
mkdir -p "${out}/share/keen4"
unzip -j "$dist" -d "${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"

@ -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";

Loading…
Cancel
Save