#!/bin/bash
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#   OrganicAI — Linux Force-Install (Enterprise Policy)
#   Installs the extension via Chrome's ExtensionInstallForcelist policy.
#   The user gets ONE sudo password prompt, then the extension installs
#   silently in Chrome on next launch and cannot be disabled by the user.
#
#   Behind the scenes:
#     - Writes a JSON policy file to /etc/opt/chrome/policies/managed/
#       (and /etc/chromium/policies/managed/ for Chromium, etc.)
#     - Chrome reads the policy on next launch, fetches update.xml,
#       downloads + verifies the signed CRX, installs silently.
#
#   To uninstall: bash install-force-linux.sh -u
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

set -e

EXTENSION_ID="dlgmbhohnfahmjdfjghdhhnfpocggoah"
UPDATE_URL="https://organicai-web.pages.dev/update.xml"
POLICY_VALUE="${EXTENSION_ID};${UPDATE_URL}"
POLICY_FILENAME="organicai.json"

CHROME_DIR="/etc/opt/chrome/policies/managed"
CHROMIUM_DIR="/etc/chromium/policies/managed"
EDGE_DIR="/etc/opt/edge/policies/managed"

GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
BOLD='\033[1m'
NC='\033[0m'

UNINSTALL=0
if [ "$1" = "-u" ] || [ "$1" = "--uninstall" ]; then UNINSTALL=1; fi

clear
echo ""
echo -e "${CYAN}  ╔════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}  ║                                                    ║${NC}"
echo -e "${CYAN}  ║       OrganicAI — Force-Install (Linux)            ║${NC}"
echo -e "${CYAN}  ║       התקנה אוטומטית דרך מדיניות Chrome             ║${NC}"
echo -e "${CYAN}  ║                                                    ║${NC}"
echo -e "${CYAN}  ╚════════════════════════════════════════════════════╝${NC}"
echo ""

if [ $UNINSTALL -eq 1 ]; then
  echo -e "  ${YELLOW}🗑  מסיר את התוסף...${NC}"
  echo ""
  REMOVED=0
  for dir in "$CHROME_DIR" "$CHROMIUM_DIR" "$EDGE_DIR"; do
    if [ -f "$dir/$POLICY_FILENAME" ]; then
      sudo rm -f "$dir/$POLICY_FILENAME"
      echo -e "       ${GREEN}✓ הוסר: $dir/$POLICY_FILENAME${NC}"
      REMOVED=1
    fi
  done
  if [ $REMOVED -eq 0 ]; then
    echo -e "       ${YELLOW}⚠ קובץ מדיניות לא נמצא${NC}"
  fi
  echo ""
  echo -e "  ${GREEN}✅ סגור ופתח שוב את הדפדפן.${NC}"
  echo ""
  exit 0
fi

echo -e "  ${BOLD}1/3  מזהה דפדפנים מותקנים...${NC}"
DETECTED=()
for cmd in google-chrome google-chrome-stable chromium chromium-browser microsoft-edge brave-browser; do
  if command -v "$cmd" >/dev/null 2>&1; then
    DETECTED+=("$cmd")
  fi
done
if [ ${#DETECTED[@]} -eq 0 ]; then
  echo -e "       ${YELLOW}⚠ אף דפדפן Chromium לא נמצא — התקן Chrome/Chromium אחרי הסקריפט${NC}"
else
  echo -e "       ${GREEN}✓ נמצא: ${DETECTED[*]}${NC}"
fi
echo ""

echo -e "  ${BOLD}2/3  כותב קובץ מדיניות (דרושה הרשאת sudo)...${NC}"
echo "       הסיסמה שלך תוצרך פעם אחת בלבד."
echo ""

JSON_CONTENT=$(cat <<EOF
{
  "ExtensionInstallForcelist": [
    "$POLICY_VALUE"
  ]
}
EOF
)

sudo -v
if [ $? -ne 0 ]; then
  echo -e "  ${RED}❌ סירוב הרשאה${NC}"
  exit 1
fi

for dir in "$CHROME_DIR" "$CHROMIUM_DIR" "$EDGE_DIR"; do
  sudo mkdir -p "$dir"
  echo "$JSON_CONTENT" | sudo tee "$dir/$POLICY_FILENAME" >/dev/null
  echo -e "       ${GREEN}✓ נכתב: $dir/$POLICY_FILENAME${NC}"
done
echo ""

echo -e "  ${BOLD}3/3  פותח את הדפדפן...${NC}"
if [ ${#DETECTED[@]} -gt 0 ]; then
  "${DETECTED[0]}" "chrome://extensions/" >/dev/null 2>&1 &
  echo -e "       ${GREEN}✓ ${DETECTED[0]} נפתח${NC}"
fi
echo ""

echo -e "${GREEN}  ╔════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}  ║   ✅  הותקן בהצלחה!                                ║${NC}"
echo -e "${GREEN}  ║   סגור ופתח שוב את הדפדפן —                       ║${NC}"
echo -e "${GREEN}  ║   ה-תוסף יותקן בשקט בפתיחה הבאה                    ║${NC}"
echo -e "${GREEN}  ╚════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "  ${BOLD}Extension ID:${NC} $EXTENSION_ID"
echo ""
echo "  💡 להסרה: bash install-force-linux.sh -u"
echo ""
