#!/bin/bash
# Script d'exécution pour auto_ingest.py

# Vérification des dépendances
check_dependencies() {
    # Vérifier Python
    if ! command -v python3 &> /dev/null; then
        echo "Erreur: Python 3 n'est pas installé ou n'est pas dans le PATH"
        exit 1
    fi
    
    # Vérifier pip et requests
    if ! python3 -c "import requests" &> /dev/null; then
        echo "Installation de la bibliothèque requests..."
        pip3 install requests
        if [ $? -ne 0 ]; then
            echo "Erreur: Impossible d'installer la bibliothèque requests"
            echo "Exécutez manuellement: pip3 install requests"
            exit 1
        fi
    fi
}

# Fonction d'aide
show_help() {
    echo "Script d'injection automatique pour PrivateGPT"
    echo ""
    echo "Usage: $0 [options] -d RÉPERTOIRE"
    echo ""
    echo "Options:"
    echo "  -d, --directory RÉPERTOIRE   Répertoire contenant les fichiers à injecter (obligatoire)"
    echo "  -u, --url URL                URL de l'API PrivateGPT (défaut: http://localhost:8001)"
    echo "  -r, --recursive              Parcourir récursivement les sous-répertoires"
    echo "  -t, --threads N              Nombre de threads pour les injections parallèles (défaut: 5)"
    echo "  --retry N                    Nombre de tentatives en cas d'échec (défaut: 3)"
    echo "  --retry-delay N              Délai entre les tentatives en secondes (défaut: 5)"
    echo "  --timeout N                  Délai d'attente pour chaque requête en secondes (défaut: 300)"
    echo "  --extensions EXT1 EXT2 ...   Liste d'extensions spécifiques à injecter"
    echo "  -h, --help                   Afficher cette aide"
    echo ""
    echo "Exemple: $0 -d /documents -r --extensions pdf docx"
}

# Vérifier si aucun argument n'est fourni
if [ $# -eq 0 ]; then
    show_help
    exit 1
fi

# Vérifier l'argument d'aide
for arg in "$@"; do
    if [ "$arg" = "-h" ] || [ "$arg" = "--help" ]; then
        show_help
        exit 0
    fi
done

# Vérifier la présence de l'argument obligatoire (-d ou --directory)
directory_specified=false
for ((i=1; i<=$#; i++)); do
    if [ "${!i}" = "-d" ] || [ "${!i}" = "--directory" ]; then
        directory_specified=true
        break
    fi
done

if [ "$directory_specified" = false ]; then
    echo "Erreur: L'option -d/--directory est obligatoire"
    echo "Utilisez -h ou --help pour afficher l'aide"
    exit 1
fi

# Vérifier les dépendances
check_dependencies

# Chemin au script Python
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PYTHON_SCRIPT="${SCRIPT_DIR}/auto_ingest.py"

# Vérifier que le script Python existe
if [ ! -f "$PYTHON_SCRIPT" ]; then
    echo "Erreur: Le script auto_ingest.py n'existe pas dans $SCRIPT_DIR"
    exit 1
fi

# Rendre le script Python exécutable
chmod +x "$PYTHON_SCRIPT"

# Exécuter le script Python avec tous les arguments
python3 "$PYTHON_SCRIPT" "$@"