#!/usr/bin/env bash
set -e

# итоговый URL будет вида:
# https://updates.max-automation.ru/updates/linux-cli/vplc_2.7.51_amd64.deb

# ====================

log() {
  echo -e "\033[1;34m[INFO]\033[0m $1"
}

error() {
  echo -e "\033[1;31m[ERROR]\033[0m $1" >&2
  exit 1
}

# --- Проверка curl ---
if ! command -v curl >/dev/null; then
  error "Curl не установлен"
fi

# --- Проверка ОС ---
if [ ! -f /etc/os-release ]; then
  error "Невозможно определить ОС"
fi

. /etc/os-release

case "$ID" in
  ubuntu|debian|astra|linuxmint|kali)
    log "ОС: $PRETTY_NAME"
    log "Версия: $VERSION_ID"
    ;;
  *)
    error "Поддерживаются только Debian совместимые ОС. Обнаружено: $ID ($PRETTY_NAME)"
    ;;
esac

# --- Определение архитектуры ---
ARCH_RAW=$(uname -m)

case "$ARCH_RAW" in
  x86_64) ARCH="amd64" ;;
  armv7l) ARCH="armhf" ;;
  aarch64) ARCH="arm64" ;;
  *) error "Неподдерживаемая архитектура: $ARCH_RAW" ;;
esac

log "Архитектура: $ARCH"

# --- Формирование имени пакета ---
DEB_NAME="vplc_2.11.19_${ARCH}.deb"
DEB_URL="https://updates.max-automation.ru/linux-cli/vplc/${DEB_NAME}"

log "Пакет: $DEB_NAME"
log "URL: $DEB_URL"

# --- Временная папка ---
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT

cd "$TMP_DIR"

# --- Загрузка ---
log "Загрузка пакета..."

curl -fL "$DEB_URL" -o "$DEB_NAME" || error "Не удалось скачать $DEB_URL"

# --- Установка ---
log "Установка пакета..."
if ! sudo dpkg -i "$DEB_NAME"; then
  log "Исправление зависимостей..."

  if ! sudo apt-get install -f -y; then
      error "Не удалось исправить зависимости"
  fi

  log "Повторная установка пакета..."

  if ! sudo dpkg -i "$DEB_NAME"; then
      error "Установка пакета не удалась даже после исправления зависимостей"
  fi
fi

log "✅ Установка завершена успешно"

echo ""
echo "VPLC установлен и запущен как сервис"
echo "Помощь      vplc help"
echo ""
echo "Статус      systemctl status vplc"
echo "Остановка   systemctl stop vplc"
echo "Запуск      systemctl start vplc"
echo ""
echo "Обновить    vplc update"
echo "Удалить     dpkg -P vplc"
echo ""
echo "️!!! Выйдите и войдите снова, чтобы применились права доступа к сервису."
echo "!!! Или выполните: newgrp vplc"
echo ""
