From ed1708508a81ed8004045185dc1e229265d01cf1 Mon Sep 17 00:00:00 2001 From: th-2021 <90853655+th-2021@users.noreply.github.com> Date: Tue, 23 Aug 2022 22:29:28 +0200 Subject: [PATCH] add SHIP_HOME (Linux) (#1210) --- libultraship/libultraship/Window.cpp | 6 ++++++ scripts/linux/appimage/soh.sh | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/libultraship/libultraship/Window.cpp b/libultraship/libultraship/Window.cpp index 591d926e0..81ccb68cc 100644 --- a/libultraship/libultraship/Window.cpp +++ b/libultraship/libultraship/Window.cpp @@ -316,6 +316,12 @@ namespace Ship { return fpath; #endif +#ifdef __linux__ + char* fpath = std::getenv("SHIP_HOME"); + if (fpath != NULL) + return std::string(fpath); +#endif + return "."; } diff --git a/scripts/linux/appimage/soh.sh b/scripts/linux/appimage/soh.sh index f3b563cc7..120d775c0 100644 --- a/scripts/linux/appimage/soh.sh +++ b/scripts/linux/appimage/soh.sh @@ -5,14 +5,18 @@ export PATH="$HERE"/bin:"$HERE"/usr/bin:"$PATH" export LD_LIBRARY_PATH="$HERE"/usr/lib:"$LD_LIBRARY_PATH" export ZENITY=$(command -v zenity) -while [[ ! -e "$PWD"/oot.otr ]]; do +if [ -z ${SHIP_HOME+x} ]; then +export SHIP_HOME=$PWD +fi + +while [[ ! -e "$SHIP_HOME"/oot.otr ]]; do export ASSETDIR="$(mktemp -d /tmp/assets-XXXXX)" ln -s "$HERE"/usr/bin/{assets,soh.elf,OTRGui} "$ASSETDIR" export OLDPWD="$PWD" mkdir -p "$ASSETDIR"/tmp mkdir -p "$ASSETDIR"/Extract/assets - if [ -e "$PWD"/*.*64 ]; then - ln -s "$OLDPWD"/*.*64 "$ASSETDIR"/tmp/rom.z64 + if [ -e "$SHIP_HOME"/*.*64 ]; then + ln -s "$SHIP_HOME"/*.*64 "$ASSETDIR"/tmp/rom.z64 cp -r "$ASSETDIR"/assets/game/ship_of_harkinian "$ASSETDIR"/Extract/assets/ cd "$ASSETDIR" ROMHASH=$(sha1sum -b "$ASSETDIR"/tmp/rom.z64 | awk '{ print $1 }') @@ -36,22 +40,19 @@ while [[ ! -e "$PWD"/oot.otr ]]; do echo "Processing..." fi assets/extractor/ZAPD.out ed -eh -i assets/extractor/xmls/"${ROM}" -b tmp/rom.z64 -fl assets/extractor/filelists -o placeholder -osf placeholder -gsf 1 -rconf assets/extractor/Config_"${ROM}".xml -se OTR > /dev/null 2>&1 - cp "$ASSETDIR"/oot.otr "$OLDPWD" + cp "$ASSETDIR"/oot.otr "$SHIP_HOME" echo "Restart $APPIMAGE to play!" sleep 3 rm -r "$ASSETDIR" break else if [ -n "$ZENITY" ]; then - zenity --error --timeout=5 --text="Place ROM in $OWD" --title="Missing ROM file" --width=500 --width=200 + zenity --error --timeout=5 --text="Place ROM in $SHIP_HOME" --title="Missing ROM file" --width=500 --width=200 else echo -e "\nPlace ROM in this folder\n" fi exit fi done - cd "$OWD" - ln -s "$HERE"/usr/bin/gamecontrollerdb.txt "$PWD" - "$HERE"/usr/bin/soh.elf - unlink "$PWD"/gamecontrollerdb.txt + (cd "$HERE/usr/bin"; ./soh.elf) exit