summary refs log tree commit diff
path: root/pkgs/games/umoria
diff options
context:
space:
mode:
authorJohannes Maier <johannes.maier@mailbox.org>2022-06-18 14:18:00 +0200
committerJohannes Maier <johannes.maier@mailbox.org>2022-06-18 14:22:24 +0200
commitacf302428e6129d88e8282736a4d76792a79362e (patch)
tree54516459dc77a78293e6c11330cf4ebf2ca8f21d /pkgs/games/umoria
parentbfc755d4d0e14a159b77b82246ffe651fa52955b (diff)
downloadnixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar.gz
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar.bz2
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar.lz
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar.xz
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.tar.zst
nixpkgs-acf302428e6129d88e8282736a4d76792a79362e.zip
umoria: refactor and extend
- Simplify some symlinking
- Don't remove the temporary run directory: umoria allows for dumping
  character info, which would be in there and inaccessible after
  saving the game otherwise.  The system takes care of cleaning up
  the temporary directory anyway.
- Allow passing arguments to the wrapped executable, allowing using
  different save directories, passing game seeds, checking out
  highscores, etc.
Diffstat (limited to 'pkgs/games/umoria')
-rw-r--r--pkgs/games/umoria/default.nix22
1 files changed, 10 insertions, 12 deletions
diff --git a/pkgs/games/umoria/default.nix b/pkgs/games/umoria/default.nix
index 03cdf4eab9d..13ec037afba 100644
--- a/pkgs/games/umoria/default.nix
+++ b/pkgs/games/umoria/default.nix
@@ -38,24 +38,22 @@ gcc9Stdenv.mkDerivation rec {
 
     RUNDIR=\$(mktemp -d)
 
-    cleanup() {
-      rm -rf \$RUNDIR
-    }
-
-    trap cleanup EXIT
+    # Print the directory, so users have access to dumps, and let the system
+    # take care of cleaning up temp files.
+    echo "Running umoria in \$RUNDIR"
 
     cd \$RUNDIR
-    mkdir data
-
-    for i in $out/data/*; do
-      ln -s \$i "data/\$(basename \$i)"
-    done
+    ln -sn $out/data \$RUNDIR/data
 
     mkdir -p ${savesDir}
     [[ ! -f ${savesDir}/scores.dat ]] && touch ${savesDir}/scores.dat
     ln -s ${savesDir}/scores.dat scores.dat
 
-    $out/.umoria-unwrapped ${savesDir}/game.sav
+    if [ \$# -eq 0 ]; then
+       $out/.umoria-unwrapped ${savesDir}/game.sav
+    else
+       $out/.umoria-unwrapped "\$@"
+    fi
     EOF
 
     chmod +x $out/bin/umoria
@@ -74,7 +72,7 @@ gcc9Stdenv.mkDerivation rec {
     '';
     platforms = platforms.unix;
     badPlatforms = [ "aarch64-darwin" ];
-    maintainers = [ maintainers.aciceri ];
+    maintainers = with maintainers; [ aciceri kenran ];
     license = licenses.gpl3Plus;
   };
 }