Code/IA/02 - injection_fiches/watch_directory.sh
2025-06-04 08:35:53 +02:00

94 lines
2.7 KiB
Bash
Executable File

#!/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" "$@"