#!/bin/bash
SHERLOG_DIR="/opt/sherlog"

if [ ! -d "$SHERLOG_DIR" ]; then
    echo "Ошибка: $SHERLOG_DIR не найден."
    exit 1
fi

cd "$SHERLOG_DIR" || exit 1

case "$1" in
    start)
        echo "Запуск SherLOG (сборка образов при первом старте может занять 5 минут)..."
        docker compose up -d --build
        echo ""
        IP=$(hostname -I 2>/dev/null | awk '{print $1}')
        echo "Готово: http://${IP:-localhost}/  (admin/admin)"
        ;;
    stop)    docker compose down ;;
    restart) docker compose restart "${2:-}" ;;
    status|ps) docker compose ps ;;
    logs)    shift; docker compose logs -f "$@" ;;
    build|rebuild) docker compose up -d --build "${2:-}" ;;
    pull)    docker compose pull ;;
    clean)   echo "Очистка контейнеров и образов..."; docker compose down --rmi local ;;
    ip)
        IP=$(hostname -I 2>/dev/null | awk '{print $1}')
        echo "  http://${IP:-localhost}/"
        ;;
    help|--help|-h|"")
        cat <<HELP
SherLOG CLI

Использование: sudo sherlog <команда> [аргументы]

Команды:
  start              Запустить (соберёт образы при первом запуске)
  stop               Остановить
  restart [service]  Перезапустить
  status, ps         Статус контейнеров
  logs [service]     Логи с follow (Ctrl+C - выход)
  build [service]    Пересобрать образы
  pull               Обновить базовые образы
  clean              Удалить контейнеры и образы
  ip                 Показать URL
  help               Эта справка
HELP
        ;;
    *) echo "Неизвестная команда: $1. Используйте: sherlog help"; exit 1 ;;
esac
