#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PLIST_SRC="$SCRIPT_DIR/com.jarvis.resourceguard.plist"
PLIST_DEST="$HOME/Library/LaunchAgents/com.jarvis.resourceguard.plist"
GUARD_SRC="$SCRIPT_DIR/resource_guard.py"
LOCAL_BIN="$HOME/jarvis_safety/bin"
LOCAL_GUARD="$LOCAL_BIN/resource_guard.py"

echo "[1/6] psutil確認..."
if ! python3 -c "import psutil" 2>/dev/null; then
    echo "  → psutil未インストール。pip3でインストール中..."
    pip3 install --user psutil
else
    echo "  → psutil OK"
fi

echo "[2/6] ローカル実行ディレクトリ作成..."
mkdir -p "$LOCAL_BIN"
echo "  → $LOCAL_BIN"

echo "[3/6] resource_guard.py をローカルにコピー..."
cp -p "$GUARD_SRC" "$LOCAL_GUARD"
echo "  → $LOCAL_GUARD"

echo "[4/6] plistをLaunchAgentsへコピー（パス書き換え）..."
mkdir -p "$HOME/Library/LaunchAgents"
sed "s|__HOME__|$HOME|g" "$PLIST_SRC" > "$PLIST_DEST"
echo "  → $PLIST_DEST"

echo "[5/6] launchctl登録..."
launchctl unload "$PLIST_DEST" 2>/dev/null || true
launchctl load "$PLIST_DEST"

echo "[6/6] 起動確認..."
sleep 1
if launchctl list | grep -q "com.jarvis.resourceguard"; then
    echo "  → com.jarvis.resourceguard 起動済み ✓"
else
    echo "  ⚠️  プロセスが見つかりません。stderr確認: $HOME/jarvis_safety/stderr.log"
fi

echo ""
echo "テスト通知発火..."
python3 "$LOCAL_GUARD" --test-notify

echo ""
echo "インストール完了。ログ: tail -f ~/jarvis_safety/resource_log.jsonl"
echo "ソース変更時は ./sync.sh で実行版を更新してください"
