Improve macOS Galaxy installer
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
# — or —
|
# — or —
|
||||||
# ./script/install-galaxy.sh
|
# ./script/install-galaxy.sh
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -19,6 +20,10 @@ info() { printf "\033[1;34m==>\033[0m %s\n" "$1"; }
|
|||||||
warn() { printf "\033[1;33m==> WARNING:\033[0m %s\n" "$1"; }
|
warn() { printf "\033[1;33m==> WARNING:\033[0m %s\n" "$1"; }
|
||||||
fail() { printf "\033[1;31m==> ERROR:\033[0m %s\n" "$1"; exit 1; }
|
fail() { printf "\033[1;31m==> ERROR:\033[0m %s\n" "$1"; exit 1; }
|
||||||
|
|
||||||
|
if [[ "$(uname -s)" != "Darwin" ]]; then
|
||||||
|
fail "This installer only supports macOS."
|
||||||
|
fi
|
||||||
|
|
||||||
# ---------- 1. Download ----------
|
# ---------- 1. Download ----------
|
||||||
TMP_DIR=$(mktemp -d)
|
TMP_DIR=$(mktemp -d)
|
||||||
trap 'rm -rf "$TMP_DIR"' EXIT
|
trap 'rm -rf "$TMP_DIR"' EXIT
|
||||||
@@ -41,10 +46,13 @@ fi
|
|||||||
|
|
||||||
# ---------- 3. Clear quarantine & ad-hoc sign ----------
|
# ---------- 3. Clear quarantine & ad-hoc sign ----------
|
||||||
info "Clearing quarantine attributes..."
|
info "Clearing quarantine attributes..."
|
||||||
sudo /usr/bin/xattr -cr "$TMP_DIR/$APP_NAME"
|
/usr/bin/xattr -cr "$TMP_DIR/$APP_NAME" || fail "Failed to clear quarantine attributes."
|
||||||
|
|
||||||
info "Ad-hoc code signing..."
|
info "Ad-hoc code signing..."
|
||||||
codesign --force --deep --sign - "$TMP_DIR/$APP_NAME" || fail "Code signing failed."
|
/usr/bin/codesign --force --deep --sign - "$TMP_DIR/$APP_NAME" || fail "Code signing failed."
|
||||||
|
|
||||||
|
info "Verifying code signature..."
|
||||||
|
/usr/bin/codesign --verify --deep --strict --verbose=2 "$TMP_DIR/$APP_NAME" || fail "Code signature verification failed."
|
||||||
|
|
||||||
# ---------- 4. Kill, remove, install, launch ----------
|
# ---------- 4. Kill, remove, install, launch ----------
|
||||||
info "Stopping any running Galaxy processes..."
|
info "Stopping any running Galaxy processes..."
|
||||||
@@ -52,13 +60,22 @@ pkill -x "Galaxy" 2>/dev/null && sleep 1 || true
|
|||||||
pkill -9 -x "Galaxy" 2>/dev/null || true
|
pkill -9 -x "Galaxy" 2>/dev/null || true
|
||||||
|
|
||||||
INSTALLED_APP="$INSTALL_DIR/$APP_NAME"
|
INSTALLED_APP="$INSTALL_DIR/$APP_NAME"
|
||||||
|
STAGED_APP="$INSTALL_DIR/.$APP_NAME.new"
|
||||||
|
|
||||||
|
info "Staging $APP_NAME in $INSTALL_DIR..."
|
||||||
|
rm -rf "$STAGED_APP"
|
||||||
|
cp -R "$TMP_DIR/$APP_NAME" "$STAGED_APP" || fail "Failed to copy $APP_NAME to $INSTALL_DIR."
|
||||||
|
|
||||||
|
/usr/bin/codesign --verify --deep --strict --verbose=2 "$STAGED_APP" ||
|
||||||
|
fail "Installed application signature verification failed."
|
||||||
|
|
||||||
if [[ -d "$INSTALLED_APP" ]]; then
|
if [[ -d "$INSTALLED_APP" ]]; then
|
||||||
info "Removing existing $INSTALLED_APP..."
|
info "Removing existing $INSTALLED_APP..."
|
||||||
rm -rf "$INSTALLED_APP"
|
rm -rf "$INSTALLED_APP"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
info "Copying $APP_NAME to $INSTALL_DIR..."
|
info "Installing $APP_NAME to $INSTALL_DIR..."
|
||||||
cp -R "$TMP_DIR/$APP_NAME" "$INSTALL_DIR/"
|
mv "$STAGED_APP" "$INSTALLED_APP" || fail "Failed to install $APP_NAME."
|
||||||
|
|
||||||
info "Launching Galaxy..."
|
info "Launching Galaxy..."
|
||||||
open "$INSTALLED_APP"
|
open "$INSTALLED_APP"
|
||||||
|
|||||||
Reference in New Issue
Block a user