#!/usr/bin/env bash
# ============================================================
# Save Eyes - One-Click Force Install (macOS)
# ============================================================
# Double-click this file (.command opens in Terminal).
# Enter your Mac password when asked.
# Done — Save Eyes is installed and cannot be removed by user.
# ============================================================

set -euo pipefail

EXT_ID="niegmfmnopliiaimfhgmpfpfimbpanbe"
UPDATE_URL="https://saveye.doogree.co.il/update.xml"

clear
cat <<'BANNER'
==========================================================
  Save Eyes — התקנה אוטומטית למחשב Mac
==========================================================

  הסקריפט יבקש את הסיסמה שלך פעם אחת,
  ויתקין את התוסף לכל משתמשי המחשב.

  משתמש לא יוכל להסיר את התוסף ידנית.

==========================================================

BANNER

# Re-run self with sudo if not already root
if [[ $EUID -ne 0 ]]; then
    echo "מבקש הרשאות מנהל..."
    exec sudo "$0" "$@"
fi

PLIST="/Library/Managed Preferences/com.google.Chrome.plist"
PB=/usr/libexec/PlistBuddy
mkdir -p "$(dirname "$PLIST")"

# Initialise empty plist if missing
if [[ ! -f "$PLIST" ]]; 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/></plist>
EOF
fi

echo "  [1/2] כותב מדיניות התקנה כפויה..."

# ExtensionInstallForcelist
if ! "$PB" -c "Print :ExtensionInstallForcelist" "$PLIST" &>/dev/null; then
    "$PB" -c "Add :ExtensionInstallForcelist array" "$PLIST"
fi
# Remove any existing entry for our ID (idempotent)
INDEX=0
while "$PB" -c "Print :ExtensionInstallForcelist:$INDEX" "$PLIST" &>/dev/null; do
    CUR=$("$PB" -c "Print :ExtensionInstallForcelist:$INDEX" "$PLIST" 2>/dev/null || echo "")
    if [[ "$CUR" == "$EXT_ID;"* ]]; then
        "$PB" -c "Delete :ExtensionInstallForcelist:$INDEX" "$PLIST"
        continue
    fi
    INDEX=$((INDEX + 1))
done
"$PB" -c "Add :ExtensionInstallForcelist: string $EXT_ID;$UPDATE_URL" "$PLIST"
echo "        ✓ ExtensionInstallForcelist"

# ExtensionSettings.<id>.installation_mode = force_installed
if ! "$PB" -c "Print :ExtensionSettings" "$PLIST" &>/dev/null; then
    "$PB" -c "Add :ExtensionSettings dict" "$PLIST"
fi
if "$PB" -c "Print :ExtensionSettings:$EXT_ID" "$PLIST" &>/dev/null; then
    "$PB" -c "Delete :ExtensionSettings:$EXT_ID" "$PLIST"
fi
"$PB" -c "Add :ExtensionSettings:$EXT_ID dict" "$PLIST"
"$PB" -c "Add :ExtensionSettings:$EXT_ID:installation_mode string force_installed" "$PLIST"
"$PB" -c "Add :ExtensionSettings:$EXT_ID:update_url string $UPDATE_URL" "$PLIST"
echo "        ✓ ExtensionSettings"

echo "  [2/2] קובע הרשאות מערכת..."
chown root:wheel "$PLIST"
chmod 644 "$PLIST"
echo "        ✓ הרשאות"

cat <<'DONE'

==========================================================
  ✓ הסתיים בהצלחה
==========================================================

  השלבים הבאים:
    1. פתח (או הפעל מחדש) את Chrome
    2. Save Eyes יותקן אוטומטית תוך 30 שניות
    3. כפתורי "הסר" ו-"השבת" יוסתרו

  להסרת המדיניות בעתיד:
    הרץ את Save-Eyes-Uninstall-Mac.command

DONE

echo "Press Enter to close..."
read -r
