nethack: fix the last-minute fix
This commit is contained in:
parent
459a5c5803
commit
b6c9ce9b03
@ -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
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user