summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md2
-rw-r--r--src/SMAPI.Installer/assets/unix-launcher.sh28
2 files changed, 28 insertions, 2 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index c9fcbc12..3214c09e 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -10,7 +10,7 @@
## Upcoming release
* For players:
* Improved error if SMAPI fails to dispose on game exit.
- * Updated Linux launch script for Stardew Valley 1.4.5 multiplayer hotfix.
+ * Updated Linux/macOS launch script for Stardew Valley 1.4.5 multiplayer hotfix.
* Fixed error when running the Windows installer as administrator (thanks to LostLogic!).
* Fixed `player_add` and `list_items` console commands not including some shirts _(in Console Commands)_.
* Fixed installer error on some older Windows systems (thanks to eddyballs!).
diff --git a/src/SMAPI.Installer/assets/unix-launcher.sh b/src/SMAPI.Installer/assets/unix-launcher.sh
index 71056c21..d309f750 100644
--- a/src/SMAPI.Installer/assets/unix-launcher.sh
+++ b/src/SMAPI.Installer/assets/unix-launcher.sh
@@ -43,8 +43,34 @@ if [ "$UNAME" == "Darwin" ]; then
cp -p StardewValley.bin.osx StardewModdingAPI.bin.osx
fi
+ # Make sure we're running in Terminal (so the user can see errors/warnings/update alerts).
+ # Previously we would just use `open -a Terminal` to launch the .bin.osx file, but that
+ # doesn't let us set environment variables.
+ if [ ! -t 1 ]; then # https://stackoverflow.com/q/911168/262123
+ # sanity check to make sure we don't have an infinite loop of opening windows
+ SKIP_TERMINAL=false
+ for argument in "$@"; do
+ if [ "$argument" == "--no-reopen-terminal" ]; then
+ SKIP_TERMINAL=true
+ break
+ fi
+ done
+
+ # reopen in Terminal if needed
+ # https://stackoverflow.com/a/29511052/262123
+ if [ "$SKIP_TERMINAL" == "false" ]; then
+ echo "Reopening in the Terminal app..."
+ echo "\"$0\" $@ --no-reopen-terminal" > /tmp/open-smapi-terminal.sh
+ chmod +x /tmp/open-smapi-terminal.sh
+ cat /tmp/open-smapi-terminal.sh
+ open -W -a Terminal /tmp/open-smapi-terminal.sh
+ rm /tmp/open-smapi-terminal.sh
+ exit 0
+ fi
+ fi
+
# launch SMAPI
- open -a Terminal ./StardewModdingAPI.bin.osx "$@"
+ LC_ALL="C" ./StardewModdingAPI.bin.osx "$@"
else
# choose binary file to launch
LAUNCH_FILE=""