#!/usr/bin/env bash set -euo pipefail xcodebuild -project GhosttyTabs.xcodeproj -scheme cmux -configuration Release -destination 'platform=macOS' build pkill -x cmux || true sleep 0.2 APP_PATH="$( find "$HOME/Library/Developer/Xcode/DerivedData" -path "*/Build/Products/Release/cmux.app" -print0 \ | xargs -0 /usr/bin/stat -f "%m %N" 2>/dev/null \ | sort -nr \ | head -n 1 \ | cut -d' ' -f2- )" if [[ -z "${APP_PATH}" ]]; then echo "cmux.app not found in DerivedData" >&2 exit 1 fi echo "Release app:" echo " ${APP_PATH}" # Dev shells (including CI/Codex) often force-disable paging by exporting these. # Don't leak that into cmux, otherwise `git diff` won't page even with PAGER=less. env -u GIT_PAGER -u GH_PAGER open -g "$APP_PATH" APP_PROCESS_PATH="${APP_PATH}/Contents/MacOS/cmux" ATTEMPT=0 MAX_ATTEMPTS=20 while [[ "$ATTEMPT" -lt "$MAX_ATTEMPTS" ]]; do if pgrep -f "$APP_PROCESS_PATH" >/dev/null 2>&1; then echo "Release launch status:" echo " running: ${APP_PROCESS_PATH}" exit 0 fi ATTEMPT=$((ATTEMPT + 1)) sleep 0.25 done echo "warning: Release app launch was requested, but no running process was observed for:" >&2 echo " ${APP_PROCESS_PATH}" >&2