juc500 정상동작
This commit is contained in:
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/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" <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key><string>${LABEL}</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/bin/bash</string>
|
||||
<string>${LAUNCHER}</string>
|
||||
</array>
|
||||
<key>EnvironmentVariables</key>
|
||||
<dict>
|
||||
<key>JUC500_ROOT</key><string>${ROOT}</string>
|
||||
<key>JUC500_CABLE_AUTOLAUNCH</key><string>1</string>
|
||||
</dict>
|
||||
<key>RunAtLoad</key><true/>
|
||||
<key>KeepAlive</key><true/>
|
||||
<key>StandardOutPath</key><string>${ROOT}/.juc500/tauri-launch.log</string>
|
||||
<key>StandardErrorPath</key><string>${ROOT}/.juc500/tauri-launch.log</string>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
else
|
||||
cat >"$PLIST" <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key><string>${LABEL}</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>${BIN}</string>
|
||||
</array>
|
||||
<key>EnvironmentVariables</key>
|
||||
<dict>
|
||||
<key>JUC500_ROOT</key><string>${ROOT}</string>
|
||||
<key>JUC500_CABLE_AUTOLAUNCH</key><string>1</string>
|
||||
</dict>
|
||||
<key>RunAtLoad</key><true/>
|
||||
<key>KeepAlive</key><true/>
|
||||
<key>StandardOutPath</key><string>${ROOT}/.juc500/tauri-launch.log</string>
|
||||
<key>StandardErrorPath</key><string>${ROOT}/.juc500/tauri-launch.log</string>
|
||||
</dict>
|
||||
</plist>
|
||||
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가 열립니다."
|
||||
Reference in New Issue
Block a user