nethack: fix the last-minute fix

This commit is contained in:
Nikolay Amiantov 2015-12-08 18:10:53 +03:00
parent 459a5c5803
commit b6c9ce9b03

View File

@ -8,7 +8,7 @@ let
if stdenv.isLinux then "linux" if stdenv.isLinux then "linux"
# We probably want something different for Darwin # We probably want something different for Darwin
else "unix"; else "unix";
userDir = "~/.local/nethack"; userDir = "~/.config/nethack";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "nethack-3.6.0"; name = "nethack-3.6.0";
@ -53,28 +53,29 @@ in stdenv.mkDerivation {
mkdir -p $out/bin mkdir -p $out/bin
cat <<EOF >$out/bin/nethack cat <<EOF >$out/bin/nethack
#! ${stdenv.shell} -e #! ${stdenv.shell} -e
if [ ! -d ${userDir} ]; then
mkdir -p ${userDir}
cp -r $out/games/lib/nethackuserdir/* ${userDir}
chmod -R +w ${userDir}
fi
RUNDIR=$(mktemp -d nethack) if [ ! -d ${userDir} ]; then
mkdir -p ${userDir}
cp -r $out/games/lib/nethackuserdir/* ${userDir}
chmod -R +w ${userDir}
fi
cleanup() { RUNDIR=\$(mktemp -td nethack.\$USER.XXXXX)
rm -rf $RUNDIR
}
trap cleanup EXIT
cd $RUNDIR cleanup() {
for i in ${userDir}/*; do rm -rf \$RUNDIR
ln -s \$i \$(basename \$i) }
done trap cleanup EXIT
for i in $out/games/lib/nethackdir/*; do
ln -s \$i \$(basename \$i) cd \$RUNDIR
done for i in ${userDir}/*; do
$out/games/nethack ln -s \$i \$(basename \$i)
done
for i in $out/games/lib/nethackdir/*; do
ln -s \$i \$(basename \$i)
done
$out/games/nethack
EOF EOF
chmod +x $out/bin/nethack chmod +x $out/bin/nethack
''; '';