Files
CleanMM/scripts/atlas/verify-installer.sh
2026-03-10 17:09:35 +08:00

45 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
PKG_PATH="${PKG_PATH:-$ROOT_DIR/dist/native/Atlas-for-Mac.pkg}"
INSTALL_ROOT="${INSTALL_ROOT:-$HOME}"
APP_PATH="$INSTALL_ROOT/Applications/Atlas for Mac.app"
INFO_PLIST="$APP_PATH/Contents/Info.plist"
KEEP_INSTALLED_APP="${KEEP_INSTALLED_APP:-0}"
cleanup() {
if [[ "$KEEP_INSTALLED_APP" != "1" && -d "$APP_PATH" ]]; then
python3 - <<'PY'
from pathlib import Path
import shutil, os
app = Path(os.environ['APP_PATH'])
if app.exists():
shutil.rmtree(app)
PY
fi
}
trap cleanup EXIT
if [[ ! -f "$PKG_PATH" ]]; then
echo "Installer package not found: $PKG_PATH" >&2
exit 1
fi
mkdir -p "$INSTALL_ROOT/Applications"
installer -allowUntrusted -pkg "$PKG_PATH" -target CurrentUserHomeDirectory >/dev/null
if [[ ! -d "$APP_PATH" ]]; then
echo "Installed app not found at $APP_PATH" >&2
exit 1
fi
APP_DISPLAY_NAME=$(/usr/bin/defaults read "$INFO_PLIST" CFBundleDisplayName 2>/dev/null || echo "")
if [[ "$APP_DISPLAY_NAME" != "Atlas for Mac" ]]; then
echo "Unexpected installed app display name: ${APP_DISPLAY_NAME:-<empty>}" >&2
exit 1
fi
echo "Installer validation succeeded"
echo "Installed app path: $APP_PATH"