chore(mac): make package/restart skip ts relay

This commit is contained in:
Peter Steinberger
2025-12-09 17:36:24 +00:00
parent fcc8d59588
commit d8fb2f9175
2 changed files with 87 additions and 56 deletions

View File

@@ -25,8 +25,12 @@ fi
echo "📦 Ensuring deps (pnpm install)" echo "📦 Ensuring deps (pnpm install)"
(cd "$ROOT_DIR" && pnpm install --no-frozen-lockfile --config.node-linker=hoisted) (cd "$ROOT_DIR" && pnpm install --no-frozen-lockfile --config.node-linker=hoisted)
if [[ "${SKIP_TSC:-0}" != "1" ]]; then
echo "📦 Building JS (pnpm exec tsc)" echo "📦 Building JS (pnpm exec tsc)"
(cd "$ROOT_DIR" && pnpm exec tsc -p tsconfig.json) (cd "$ROOT_DIR" && pnpm exec tsc -p tsconfig.json)
else
echo "📦 Skipping TS build (SKIP_TSC=1)"
fi
cd "$ROOT_DIR/apps/macos" cd "$ROOT_DIR/apps/macos"
@@ -114,6 +118,7 @@ rm -rf "$APP_ROOT/Contents/Resources/WebChat/vendor/pdfjs-dist/legacy"
RELAY_DIR="$APP_ROOT/Contents/Resources/Relay" RELAY_DIR="$APP_ROOT/Contents/Resources/Relay"
if [[ "${SKIP_RELAY_PACKAGE:-0}" != "1" ]]; then
echo "🧰 Staging relay payload (dist + node_modules; expects system Node ≥22)" echo "🧰 Staging relay payload (dist + node_modules; expects system Node ≥22)"
rsync -a --delete --exclude "Clawdis.app" "$ROOT_DIR/dist/" "$RELAY_DIR/dist/" rsync -a --delete --exclude "Clawdis.app" "$ROOT_DIR/dist/" "$RELAY_DIR/dist/"
cp "$ROOT_DIR/package.json" "$RELAY_DIR/" cp "$ROOT_DIR/package.json" "$RELAY_DIR/"
@@ -164,6 +169,9 @@ rm -rf \
rm -rf \ rm -rf \
"$RELAY_DIR/node_modules"/{vite,rolldown,vitest,ts-node,ts-node-dev,typescript,@types,docx-preview,jszip,lucide,ollama} 2>/dev/null || true "$RELAY_DIR/node_modules"/{vite,rolldown,vitest,ts-node,ts-node-dev,typescript,@types,docx-preview,jszip,lucide,ollama} 2>/dev/null || true
rm -rf "$TMP_DEPLOY" rm -rf "$TMP_DEPLOY"
else
echo "🧰 Skipping relay payload packaging (SKIP_RELAY_PACKAGE=1)"
fi
if [ -f "$CLI_BIN" ]; then if [ -f "$CLI_BIN" ]; then
echo "🔧 Copying CLI helper" echo "🔧 Copying CLI helper"

View File

@@ -4,7 +4,7 @@
set -euo pipefail set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
APP_BUNDLE="${ROOT_DIR}/dist/Clawdis.app" APP_BUNDLE="${CLAWDIS_APP_BUNDLE:-}"
APP_PROCESS_PATTERN="Clawdis.app/Contents/MacOS/Clawdis" APP_PROCESS_PATTERN="Clawdis.app/Contents/MacOS/Clawdis"
DEBUG_PROCESS_PATTERN="${ROOT_DIR}/apps/macos/.build/debug/Clawdis" DEBUG_PROCESS_PATTERN="${ROOT_DIR}/apps/macos/.build/debug/Clawdis"
LOCAL_PROCESS_PATTERN="${ROOT_DIR}/apps/macos/.build-local/debug/Clawdis" LOCAL_PROCESS_PATTERN="${ROOT_DIR}/apps/macos/.build-local/debug/Clawdis"
@@ -59,13 +59,36 @@ run_step "bundle webchat" bash -lc "cd '${ROOT_DIR}' && pnpm webchat:bundle"
run_step "clean build cache" bash -lc "cd '${ROOT_DIR}/apps/macos' && rm -rf .build .build-swift .swiftpm 2>/dev/null || true" run_step "clean build cache" bash -lc "cd '${ROOT_DIR}/apps/macos' && rm -rf .build .build-swift .swiftpm 2>/dev/null || true"
run_step "swift build" bash -lc "cd '${ROOT_DIR}/apps/macos' && swift build -q --product Clawdis" run_step "swift build" bash -lc "cd '${ROOT_DIR}/apps/macos' && swift build -q --product Clawdis"
# 3) Package + relaunch the app (script also stops any stragglers). # 3) Package app (skip TS + relay staging; rely on global/custom install for relay JS).
run_step "package app" "${ROOT_DIR}/scripts/package-mac-app.sh" run_step "package app" bash -lc "cd '${ROOT_DIR}' && SKIP_TSC=1 SKIP_RELAY_PACKAGE=1 '${ROOT_DIR}/scripts/package-mac-app.sh'"
# 4) Launch the packaged app in the foreground so the menu bar extra appears. choose_app_bundle() {
if [[ -n "${APP_BUNDLE}" && -d "${APP_BUNDLE}" ]]; then
return 0
fi
if [[ -d "/Applications/Clawdis.app" ]]; then
APP_BUNDLE="/Applications/Clawdis.app"
return 0
fi
if [[ -d "${ROOT_DIR}/dist/Clawdis.app" ]]; then
APP_BUNDLE="${ROOT_DIR}/dist/Clawdis.app"
if [[ ! -d "${APP_BUNDLE}/Contents/Frameworks/Sparkle.framework" ]]; then
fail "dist/Clawdis.app missing Sparkle after packaging"
fi
return 0
fi
fail "App bundle not found. Set CLAWDIS_APP_BUNDLE to your installed Clawdis.app"
}
choose_app_bundle
# 4) Launch the installed app in the foreground so the menu bar extra appears.
run_step "launch app" open "${APP_BUNDLE}" run_step "launch app" open "${APP_BUNDLE}"
# 5) Verify the packaged app is alive. # 5) Verify the app is alive.
sleep 1.5 sleep 1.5
if pgrep -f "${APP_PROCESS_PATTERN}" >/dev/null 2>&1; then if pgrep -f "${APP_PROCESS_PATTERN}" >/dev/null 2>&1; then
log "OK: Clawdis is running." log "OK: Clawdis is running."