#!/usr/bin/env bash set -euo pipefail # Build and bundle Clawdis into a minimal .app we can open. # Outputs to dist/Clawdis.app ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" APP_ROOT="$ROOT_DIR/dist/Clawdis.app" BUILD_PATH="$ROOT_DIR/apps/macos/.build" PRODUCT="Clawdis" BUNDLE_ID="${BUNDLE_ID:-com.steipete.clawdis.debug}" BUILD_TS=$(date -u +"%Y-%m-%dT%H:%M:%SZ") GIT_COMMIT=$(cd "$ROOT_DIR" && git rev-parse --short HEAD 2>/dev/null || echo "unknown") APP_VERSION="${APP_VERSION:-0.0.0}" APP_BUILD="${APP_BUILD:-$GIT_COMMIT}" cd "$ROOT_DIR/apps/macos" echo "๐Ÿ”จ Building $PRODUCT (debug)" swift build -c debug --product "$PRODUCT" --product "${PRODUCT}CLI" --build-path "$BUILD_PATH" BIN="$BUILD_PATH/debug/$PRODUCT" CLI_BIN="$BUILD_PATH/debug/ClawdisCLI" echo "๐Ÿงน Cleaning old app bundle" rm -rf "$APP_ROOT" mkdir -p "$APP_ROOT/Contents/MacOS" mkdir -p "$APP_ROOT/Contents/Resources" echo "๐Ÿ“„ Writing Info.plist" cat > "$APP_ROOT/Contents/Info.plist" < CFBundleIdentifier ${BUNDLE_ID} CFBundleShortVersionString ${APP_VERSION} CFBundleVersion ${APP_BUILD} CFBundleName Clawdis CFBundleExecutable Clawdis CFBundleIconFile Clawdis CFBundlePackageType APPL LSMinimumSystemVersion 15.0 LSUIElement ClawdisBuildTimestamp ${BUILD_TS} ClawdisGitCommit ${GIT_COMMIT} NSUserNotificationUsageDescription Clawdis needs notification permission to show alerts for agent actions. NSScreenCaptureDescription Clawdis captures the screen when the agent needs screenshots for context. NSMicrophoneUsageDescription Clawdis needs the mic for Voice Wake tests and agent audio capture. NSSpeechRecognitionUsageDescription Clawdis uses speech recognition to detect your Voice Wake trigger phrase. PLIST echo "๐Ÿšš Copying binary" cp "$BIN" "$APP_ROOT/Contents/MacOS/Clawdis" chmod +x "$APP_ROOT/Contents/MacOS/Clawdis" echo "๐Ÿ–ผ Copying app icon" cp "$ROOT_DIR/apps/macos/Sources/Clawdis/Resources/Clawdis.icns" "$APP_ROOT/Contents/Resources/Clawdis.icns" if [ -f "$CLI_BIN" ]; then echo "๐Ÿ”ง Copying CLI helper" cp "$CLI_BIN" "$APP_ROOT/Contents/MacOS/ClawdisCLI" chmod +x "$APP_ROOT/Contents/MacOS/ClawdisCLI" fi echo "โน Stopping any running Clawdis" killall -q Clawdis 2>/dev/null || true echo "๐Ÿ” Signing bundle (ad-hoc by default; set SIGN_IDENTITY for real cert)" SIGN_IDENTITY="${SIGN_IDENTITY:--}" "$ROOT_DIR/scripts/codesign-mac-app.sh" "$APP_ROOT" echo "โœ… Bundle ready at $APP_ROOT" echo "๐Ÿš€ Launching app" open "$APP_ROOT"