Files
OrionToolbar/scripts/build.sh
T
2026-10-23 09:35:17 +01:00

54 lines
1.8 KiB
Bash
Executable File

#!/bin/zsh
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
APP_NAME=OrionToolbar
DERIVED="$ROOT/.build"
CONFIGURATION="${CONFIGURATION:-Debug}"
[[ "$CONFIGURATION" == Debug || "$CONFIGURATION" == Release ]] || { echo 'CONFIGURATION must be Debug or Release' >&2; exit 2; }
mkdir -p "$ROOT/.build/build-logs"
LOG="$ROOT/build-logs/build-${CONFIGURATION}-$(date +%Y%m%d-%H%M%S).log"
echo "Building $APP_NAME ($CONFIGURATION)"
set -o pipefail
xcodebuild -project "$ROOT/OrionToolbar.xcodeproj" -scheme "$APP_NAME" -configuration "$CONFIGURATION" -derivedDataPath "$DERIVED" CODE_SIGNING_ALLOWED=NO build 2>&1 | tee "$LOG"
APP="$DERIVED/Build/Products/$CONFIGURATION/$APP_NAME.app"
[[ -d "$APP" ]] || { echo "Missing application: $APP" >&2; exit 1; }
plutil -lint "$APP/Contents/Info.plist"
EXE=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleExecutable' "$APP/Contents/Info.plist")
[[ -x "$APP/Contents/MacOS/$EXE" ]] || { echo 'Application executable missing' >&2; exit 1; }
echo "Build complete: $APP"
echo "Log: $LOG"
if [[ "${1:-}" == "--launch" ]]; then
echo
echo "=== LAUNCHING ORIONTOOLBAR ==="
pkill -x "$APP_NAME" 2>/dev/null || true
sleep 1
APP_EXEC="$APP/Contents/MacOS/$EXE"
if [[ ! -x "$APP_EXEC" ]]; then
echo "ERROR: Application executable missing: $APP_EXEC"
exit 1
fi
echo "Application: $APP"
echo "Executable: $APP_EXEC"
# Launch the exact built application as a separate macOS process.
/usr/bin/open -n "$APP" --args
sleep 3
if /usr/bin/pgrep -x "$APP_NAME" >/dev/null; then
echo "SUCCESS: OrionToolbar is running."
/usr/bin/pgrep -fl "$APP_NAME"
else
echo "ERROR: OrionToolbar did not remain running."
echo "Try launching the executable directly:"
echo "$APP_EXEC"
exit 1
fi
fi