#!/bin/bash
# PocketChip Revive — post-flash setup for stock Pocket CHIP (Jessie)
# Based on PocketCHIP-Deployer by LengAwaits (GPL-3.0)
# https://github.com/LengAwaits/PocketCHIP-Deployer
#
# Usage (Wi-Fi connected first):
#   wget https://pocketchip.2red.com.es/deploy.sh
#   chmod +x deploy.sh
#   sudo bash deploy.sh

set -e

MIRROR="chip.jfpossibilities.com"
INTERACTIVE="${INTERACTIVE:-1}"

step() {
  echo ""
  echo "==> $1"
  echo ""
  if [ "$INTERACTIVE" = "1" ]; then
    read -rsp $'Pulsa una tecla para continuar...\n' -n1 _ || true
    echo ""
  else
    sleep 2
  fi
}

fix_debian_sources() {
  cp -a /etc/apt/sources.list "/etc/apt/sources.list.bak.$(date +%s)"

  # Comentar mirrors Debian rotos o archivados (jessie ya no está en mirrors activos).
  # Nota: http://http.debian.net es un hostname real de Debian, pero Jessie debe usar archive.debian.org
  sed -i \
    -e '/^[[:space:]]*deb/s/\(debian\.org\|debian\.net\|ftp\.\|security\.debian\)/# &/' \
    -e '/jessie-updates/s/^\([[:space:]]*deb\)/# \1/' \
    /etc/apt/sources.list

  # Quitar doble # si ya estaba comentado
  sed -i 's/^[[:space:]]*# # /# /' /etc/apt/sources.list

  if ! grep -q "archive.debian.org/debian" /etc/apt/sources.list; then
    cat >> /etc/apt/sources.list <<'EOF'

# PocketChip Revive — Debian Jessie archivado
deb http://archive.debian.org/debian/ jessie main contrib non-free
deb http://archive.debian.org/debian-security jessie/updates main contrib non-free
EOF
  fi

  # Repos CHIP comunitarios
  sed -i 's|opensource.nextthing.co/chip/debian|'"${MIRROR}"'/chip/debian|g' /etc/apt/sources.list
  sed -i 's|chip.rodeo/chip/debian|'"${MIRROR}"'/chip/debian|g' /etc/apt/sources.list
  grep -q "${MIRROR}/chip/debian/repo" /etc/apt/sources.list || \
    echo "deb http://${MIRROR}/chip/debian/repo jessie main" >> /etc/apt/sources.list
  grep -q "${MIRROR}/chip/debian/pocketchip" /etc/apt/sources.list || \
    echo "deb http://${MIRROR}/chip/debian/pocketchip jessie main" >> /etc/apt/sources.list
}

if [ "$(id -u)" -ne 0 ]; then
  echo "Ejecuta con: sudo bash deploy.sh"
  exit 1
fi

echo ""
echo "  PocketChip Revive — post-flash"
echo "  Wi-Fi debe estar conectado antes de continuar."
echo ""

step "Arreglando /etc/apt/sources.list"
fix_debian_sources

step "Arreglando /etc/apt/preferences"
if [ -f /etc/apt/preferences ]; then
  sed -i 's|opensource.nextthing.co|'"${MIRROR}"'|g' /etc/apt/preferences
  sed -i 's|chip.rodeo|'"${MIRROR}"'|g' /etc/apt/preferences
fi

step "Configuración APT para Jessie archivado"
mkdir -p /etc/apt/apt.conf.d
echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/10no-check-valid
echo 'APT::Get::AllowUnauthenticated "true";' > /etc/apt/apt.conf.d/99allow-unauth

step "apt update && apt upgrade"
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 2>/dev/null || true
apt update || { echo "apt update falló — revisa sources.list"; exit 1; }
DEBIAN_FRONTEND=noninteractive apt -y upgrade || true

step "Actualizando PICO-8 (0.2.4)"
rm -rf /usr/lib/pico-8 /usr/lib/pico8
cd /tmp
wget -q --show-progress https://www.lexaloffle.com/dl/chip/pico-8_0.2.4_chip.zip -O pico-8_0.2.4_chip.zip
unzip -o pico-8_0.2.4_chip.zip -d /usr/lib
# Pocket Home suele lanzar /usr/lib/pico-8/pico8 — mantener ambos nombres
if [ -d /usr/lib/pico-8 ]; then
  ln -sfn /usr/lib/pico-8 /usr/lib/pico8
fi
# libcurl antigua que PICO-8 0.2.x necesita en Jessie
wget -q -O /usr/lib/pico-8/libcurl.so.3 \
  https://raw.githubusercontent.com/mackemint/PocketCHIP-buster-update/main/assets/libcurl.so.3 || true
rm -f pico-8_0.2.4_chip.zip

step "Instalando OpenSSH"
DEBIAN_FRONTEND=noninteractive apt -y install openssh-server
systemctl enable ssh 2>/dev/null || true
systemctl start ssh 2>/dev/null || service ssh start

echo ""
echo "============================================"
echo "  Listo — post-flash completado"
echo "============================================"
echo ""
echo "IP Wi-Fi:"
ip -4 a show wlan0 2>/dev/null | grep -Po 'inet \K[0-9.]+' || echo "(no detectada — revisa Pocket Home)"
echo ""
echo "Siguiente paso: passwd   (cambiar contraseña chip)"
echo ""
