#!/bin/bash

# Script pour initialiser l'environnement Docker pour CVE-Monitor

# Fonction pour afficher les variables d'environnement configurées
show_config() {
    echo ""
    echo "📋 Configuration actuelle :"
    echo "  - NVD_API_KEY: ${NVD_API_KEY:+✅ Configurée}${NVD_API_KEY:-❌ Non configurée}"
    echo "  - GITHUB_TOKEN: ${GITHUB_TOKEN:+✅ Configuré}${GITHUB_TOKEN:-❌ Non configuré}"
    echo "  - DB_PATH: ${DB_PATH:-/app/data/cve_database.db}"
    echo ""
}

# S'assurer que le répertoire de données existe
mkdir -p "$(dirname "$0")/data"

# Vérifier si un fichier .env existe
if [ -f .env ]; then
    echo "Fichier .env trouvé, utilisation des variables d'environnement du fichier..."
else
    echo "Fichier .env non trouvé, utilisation des variables d'environnement du système..."
fi

echo "======================================"
echo "    Configuration Docker CVE-Monitor"
echo "======================================"

# Charger toutes les variables d'environnement du fichier .env
if [ -f .env ]; then
    echo "Chargement des variables d'environnement depuis .env..."
    export $(grep -v '^#' .env | xargs)
    
    # Afficher la configuration chargée
    show_config
fi

# Vérifier la clé API NVD
if [ -z "$NVD_API_KEY" ]; then
    echo ""
    echo "⚠️  ATTENTION : Clé API NVD non définie !"
        echo "   Pour de meilleures performances, configurez NVD_API_KEY :"
        echo "   export NVD_API_KEY='votre_clé_api' ou dans le fichier .env"
        echo ""
        
        read -p "Voulez-vous continuer sans clé API ? (o/n) " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Oo]$ ]]; then
        echo "Configuration annulée. Veuillez définir votre NVD_API_KEY et réessayer."
        exit 1
    fi
    
    echo "Poursuite sans clé API (requêtes limitées autorisées)..."
else
    echo "✅ Clé API NVD configurée"
fi

# Afficher la configuration actuelle
show_config

# Construire et démarrer les conteneurs
echo ""
echo "Construction et démarrage des conteneurs Docker..."
docker-compose up -d --build

# Vérifier si les conteneurs sont en cours d'exécution
if [ $? -eq 0 ]; then
    echo ""
    echo "✅ CVE-Monitor est maintenant en cours d'exécution !"
    echo "📍 Accédez au tableau de bord à : http://localhost:5000"
    echo ""
    echo "Pour voir les journaux : docker-compose logs -f"
    echo "Pour arrêter : docker-compose down"
    echo ""
    
    read -p "Voulez-vous effectuer une synchronisation initiale de la base de données maintenant ? (o/n) " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Oo]$ ]]; then
        echo "Démarrage de la synchronisation initiale de la base de données (cela peut prendre un certain temps)..."
        docker-compose exec cve-monitor ./docker-sync.sh
    else
        echo "Synchronisation initiale ignorée. Vous pouvez l'exécuter plus tard avec :"
        echo "docker-compose exec cve-monitor ./docker-sync.sh"
    fi
else
    echo ""
    echo "❌ Erreur lors du démarrage des conteneurs Docker"
    echo "Veuillez vérifier les journaux Docker pour plus d'informations"
fi
