#!/bin/bash
# Instalador do Clawos para macOS.
#
#   curl -fsSL https://clawos.dev/install.sh | bash
#
# Baixa o último release publicado no GitHub (Apple Silicon ou Intel), instala em
# /Applications e abre o app. Como o download é feito pelo curl, o macOS não aplica a
# quarentena do Gatekeeper — necessária enquanto o Clawos não é notarizado pela Apple.
#
# Variáveis opcionais:
#   CLAWOS_URL          URL (ou file://) de um .zip específico, em vez do último release
#   CLAWOS_INSTALL_DIR  pasta de destino (padrão: /Applications)
#   CLAWOS_NO_OPEN=1    não abre o app ao final
set -euo pipefail

REPO="vdloureiro/clawos-ADE"
DEST="${CLAWOS_INSTALL_DIR:-/Applications}"

say() { printf '\033[1;38;5;209m→\033[0m %s\n' "$1"; }
fail() { printf '\033[1;31m✗\033[0m %s\n' "$1" >&2; exit 1; }

[ "$(uname -s)" = "Darwin" ] || fail "Este instalador é para macOS. Para Windows e Linux, veja https://github.com/$REPO/releases"

case "$(uname -m)" in
  arm64) ARCH="arm64" ;;
  x86_64) ARCH="x64" ;;
  *) fail "Arquitetura não suportada: $(uname -m)" ;;
esac

URL="${CLAWOS_URL:-}"
if [ -z "$URL" ]; then
  say "Procurando a última versão do Clawos ($ARCH)…"
  URL=$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" \
    | grep -o "\"browser_download_url\": *\"[^\"]*-mac-$ARCH\.zip\"" \
    | head -n 1 | sed -E 's/.*"(https[^"]+)"$/\1/') || true
  [ -n "$URL" ] || fail "Nenhum release publicado encontrado em https://github.com/$REPO/releases"
fi

TMP="$(mktemp -d -t clawos)"
trap 'rm -rf "$TMP"' EXIT

say "Baixando $(basename "$URL")…"
curl -fL --progress-bar "$URL" -o "$TMP/Clawos.zip"

say "Extraindo…"
ditto -x -k "$TMP/Clawos.zip" "$TMP/app"
[ -d "$TMP/app/Clawos.app" ] || fail "O arquivo baixado não contém o Clawos.app."

if [ -d "$DEST/Clawos.app" ]; then
  say "Substituindo a versão instalada…"
  # Fecha só o Clawos que roda a partir desta pasta.
  if pgrep -f "$DEST/Clawos.app/Contents/MacOS/Clawos" >/dev/null 2>&1; then
    osascript -e "quit app \"$DEST/Clawos.app\"" >/dev/null 2>&1 || true
    sleep 2
  fi
  rm -rf "$DEST/Clawos.app"
fi

mkdir -p "$DEST"
ditto "$TMP/app/Clawos.app" "$DEST/Clawos.app"
# Garantia extra caso o arquivo tenha vindo de um navegador.
xattr -dr com.apple.quarantine "$DEST/Clawos.app" 2>/dev/null || true

printf '\033[1;32m✓\033[0m Clawos instalado em %s/Clawos.app\n' "$DEST"
if [ "${CLAWOS_NO_OPEN:-}" != "1" ]; then
  open "$DEST/Clawos.app"
fi
