#!/usr/bin/env bash # macOS 로그인 시 JUC500 Tauri 감시 앱 자동 실행 (케이블 연결 → GUI) set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" LABEL="com.juc500.desktop" PLIST="$HOME/Library/LaunchAgents/${LABEL}.plist" LAUNCHER="$ROOT/scripts/launch_tauri.sh" BIN="$ROOT/juc500-app/src-tauri/target/release/juc500-app" if [[ -x "$BIN" ]]; then RUN_CMD="$BIN" elif [[ -x "$LAUNCHER" ]]; then RUN_CMD="/bin/bash" RUN_ARGS=("$LAUNCHER") else echo "Tauri 앱 없음. 먼저: cd juc500-app && npm install && npm run tauri build" >&2 exit 1 fi mkdir -p "$HOME/Library/LaunchAgents" chmod +x "$ROOT/scripts/launch_tauri.sh" if [[ "$RUN_CMD" == "/bin/bash" ]]; then cat >"$PLIST" < Label${LABEL} ProgramArguments /bin/bash ${LAUNCHER} EnvironmentVariables JUC500_ROOT${ROOT} JUC500_CABLE_AUTOLAUNCH1 RunAtLoad KeepAlive StandardOutPath${ROOT}/.juc500/tauri-launch.log StandardErrorPath${ROOT}/.juc500/tauri-launch.log EOF else cat >"$PLIST" < Label${LABEL} ProgramArguments ${BIN} EnvironmentVariables JUC500_ROOT${ROOT} JUC500_CABLE_AUTOLAUNCH1 RunAtLoad KeepAlive StandardOutPath${ROOT}/.juc500/tauri-launch.log StandardErrorPath${ROOT}/.juc500/tauri-launch.log EOF fi launchctl bootout "gui/$(id -u)/${LABEL}" 2>/dev/null || true launchctl bootstrap "gui/$(id -u)" "$PLIST" launchctl enable "gui/$(id -u)/${LABEL}" echo "설치 완료: ${PLIST}" echo "로그인 시 트레이 감시 앱이 실행되고, 케이블 연결 시 GUI가 열립니다."