#!/bin/bash # Script d'exécution pour watch_directory.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 les bibliothèques Python requises python3 -c " try: import watchdog except ImportError: print('Installation de la bibliothèque watchdog...') import subprocess, sys subprocess.run([sys.executable, '-m', 'pip', 'install', 'watchdog']) " || { echo "Erreur: Impossible d'installer les dépendances" exit 1 } } # Fonction d'aide show_help() { echo "Script de surveillance de répertoire pour PrivateGPT" echo "" echo "Usage: $0 [options] -d RÉPERTOIRE" echo "" echo "Options:" echo " -d, --directory RÉPERTOIRE Répertoire à surveiller (obligatoire)" echo " -s, --script CHEMIN Chemin vers le script auto_ingest.py (facultatif)" echo " -u, --url URL URL de l'API PrivateGPT (défaut: http://localhost:8001)" echo " --delay N Délai en secondes avant de traiter un nouveau fichier (défaut: 5)" echo " --extensions EXT1 EXT2 ... Liste d'extensions spécifiques à surveiller" echo " -h, --help Afficher cette aide" echo "" echo "Exemple: $0 -d /documents/à/surveiller --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}/watch_directory.py" # Vérifier que le script Python existe if [ ! -f "$PYTHON_SCRIPT" ]; then echo "Erreur: Le script watch_directory.py n'existe pas dans $SCRIPT_DIR" exit 1 fi # Rendre le script Python exécutable chmod +x "$PYTHON_SCRIPT" # Message d'information sur l'arrêt echo "Démarrage de la surveillance..." echo "Appuyez sur Ctrl+C pour arrêter la surveillance" echo "" # Exécuter le script Python avec tous les arguments python3 "$PYTHON_SCRIPT" "$@"