Commit acf30242 authored by Johannes Maier's avatar Johannes Maier
Browse files

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.
parent bfc755d4
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -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

    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;
  };
}