#!/bin/bash

# Скрипт для мониторинга прогресса сборки Docker образа
# Использование: ./check-build-progress.sh

echo "📊 Мониторинг прогресса сборки Docker образа"
echo "════════════════════════════════════════════════════════════"
echo ""

# Функция для проверки запущенных контейнеров
check_containers() {
    echo "🐳 Запущенные контейнеры:"
    docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
    echo ""
}

# Функция для проверки ресурсов
check_resources() {
    echo "💻 Использование ресурсов Docker:"
    docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}"
    echo ""
}

# Функция для проверки кеша сборки
check_cache() {
    echo "📦 Кеш Docker Builder:"
    docker builder du
    echo ""
}

# Функция для последних логов
check_logs() {
    echo "📝 Последние логи (если контейнер запущен):"
    if docker ps | grep -q "global-it24-web"; then
        docker logs global-it24-web --tail 20 2>&1 | head -20
    else
        echo "  Контейнер web еще не запущен"
    fi
    echo ""
}

# Основной цикл
while true; do
    clear
    echo "📊 Мониторинг прогресса сборки - $(date '+%H:%M:%S')"
    echo "════════════════════════════════════════════════════════════"
    echo ""
    
    # Проверка свободных ресурсов системы
    echo "🖥️  Системные ресурсы:"
    echo "  RAM:  $(free -h | awk '/^Mem:/ {printf "%s / %s (использовано: %s)", $3, $2, $3/$2*100"%"}')"
    echo "  Диск: $(df -h / | awk 'NR==2 {printf "%s / %s (использовано: %s)", $3, $2, $5}')"
    echo ""
    
    check_containers
    check_resources
    
    echo "💡 Подсказки:"
    echo "  • Этап 'Building fresh packages' занимает 8-12 минут - это нормально"
    echo "  • Предупреждения (warnings) - это нормально"
    echo "  • Для остановки мониторинга: Ctrl+C"
    echo ""
    echo "⏳ Обновление через 5 секунд..."
    
    sleep 5
done
