Skip to main content
Glama
compile_and_run.sh2.16 kB
#!/usr/bin/env bash # Reset Peekaboo mac app: kill running instances, rebuild, relaunch, verify. # # Inspired by CodexBar's Scripts/compile_and_run.sh. set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" WORKSPACE="${WORKSPACE:-$ROOT_DIR/Apps/Peekaboo.xcworkspace}" SCHEME="${SCHEME:-Peekaboo}" CONFIGURATION="${CONFIGURATION:-Debug}" DERIVED_DATA_PATH="${DERIVED_DATA_PATH:-$ROOT_DIR/.build/DerivedData}" APP_NAME="${APP_NAME:-Peekaboo}" APP_BUNDLE="${APP_BUNDLE:-$DERIVED_DATA_PATH/Build/Products/${CONFIGURATION}/${APP_NAME}.app}" APP_PROCESS_PATTERN="${APP_NAME}.app/Contents/MacOS/${APP_NAME}" DERIVED_PROCESS_PATTERN="${DERIVED_DATA_PATH}/Build/Products/${CONFIGURATION}/${APP_NAME}.app/Contents/MacOS/${APP_NAME}" log() { printf '%s\n' "$*"; } fail() { printf 'ERROR: %s\n' "$*" >&2; exit 1; } run_step() { local label="$1"; shift log "==> ${label}" if ! "$@"; then fail "${label} failed" fi } kill_all_peekaboo() { for _ in {1..15}; do pkill -f "${DERIVED_PROCESS_PATTERN}" 2>/dev/null || true pkill -f "${APP_PROCESS_PATTERN}" 2>/dev/null || true pkill -x "${APP_NAME}" 2>/dev/null || true if ! pgrep -f "${DERIVED_PROCESS_PATTERN}" >/dev/null 2>&1 \ && ! pgrep -f "${APP_PROCESS_PATTERN}" >/dev/null 2>&1 \ && ! pgrep -x "${APP_NAME}" >/dev/null 2>&1; then return 0 fi sleep 0.25 done } verify_bundle() { if [ ! -d "${APP_BUNDLE}" ]; then fail "App bundle not found at ${APP_BUNDLE}" fi } launch_app() { open "${APP_BUNDLE}" sleep 1 if pgrep -f "${APP_PROCESS_PATTERN}" >/dev/null 2>&1 || pgrep -x "${APP_NAME}" >/dev/null 2>&1; then log "OK: ${APP_NAME} is running." else fail "App exited immediately. Check crash logs in Console.app (User Reports)." fi } # 1) Kill all running Peekaboo instances (bundled or DerivedData). log "==> Killing existing Peekaboo instances" kill_all_peekaboo # 2) Build the Debug app (no signing) into DerivedData. run_step "Build ${APP_NAME}.app (${CONFIGURATION})" "${ROOT_DIR}/scripts/build-mac-debug.sh" # 3) Relaunch. run_step "Locate app bundle" verify_bundle run_step "Launch app" launch_app

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steipete/Peekaboo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server