#!/bin/bash set -euo pipefail echo "🔄 SCRIPT DE CLONAGE GIT - ENVIRONNEMENT DE DÉVELOPPEMENT 4NK" echo "Avec contexte et outillage complet pour les agents IA" echo "=====================================================" # Fonction de logging log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" } # Configuration Git GIT_BASE_URL="git@git.4nkweb.com:4nk" BRANCH="ext" BASE_DIR="/home/debian/4NK_env" # Liste des projets Ă  cloner declare -a PROJECTS=( "lecoffre_node" "sdk_relay" "sdk_signer" "sdk_storage" "sdk_client" "sdk_common" "sdk-signer-client" "ihm_client" "lecoffre-back-mini" "lecoffre-front" "doc_api" "IA_agents" ) log "📋 DĂ©pĂŽts 4NK et LeCoffre Ă  cloner sur la branche '$BRANCH':" echo " 🔧 DĂ©pĂŽts 4NK (SDK, services):" for project in "${PROJECTS[@]}"; do if [[ "$project" == sdk_* ]] || [[ "$project" == "doc_api" ]]; then echo " - $project" fi done echo " 🏠 DĂ©pĂŽts LeCoffre (applications):" for project in "${PROJECTS[@]}"; do if [[ "$project" == lecoffre_* ]] || [[ "$project" == "ihm_client" ]]; then echo " - $project" fi done echo " 🧠 Agents IA (contexte et outillage):" for project in "${PROJECTS[@]}"; do if [[ "$project" == "IA_agents" ]]; then echo " - $project (contexte complet pour agents IA)" fi done echo "" log "🔧 Configuration Git SSH..." if ! ssh -T git@git.4nkweb.com 2>&1 | grep -q "successfully authenticated"; then echo "❌ Erreur: ClĂ© SSH non configurĂ©e pour git.4nkweb.com" echo " VĂ©rifiez votre configuration SSH et vos clĂ©s" exit 1 fi log "✅ ClĂ© SSH configurĂ©e" log "📁 VĂ©rification du rĂ©pertoire de base: $BASE_DIR" if [ ! -d "$BASE_DIR" ]; then log "❌ RĂ©pertoire $BASE_DIR introuvable" exit 1 fi cd "$BASE_DIR" log "🔄 DĂ©but du clonage des projets..." echo "" for project in "${PROJECTS[@]}"; do log "📩 Clonage de $project..." # URL du projet PROJECT_URL="$GIT_BASE_URL/$project.git" # VĂ©rifier si le dossier existe dĂ©jĂ  if [ -d "$project" ]; then log "⚠ Le dossier '$project' existe dĂ©jĂ " log " Sauvegarde dans '$project.backup'" mv "$project" "$project.backup" fi # Cloner le projet sur la branche ext log " Clonage depuis: $PROJECT_URL" log " Branche: $BRANCH" if git clone -b "$BRANCH" "$PROJECT_URL" "$project"; then log "✅ $project clonĂ© avec succĂšs" # Afficher les informations du repo cd "$project" log " Dernier commit: $(git log -1 --oneline)" log " Branche: $(git branch --show-current)" cd .. else log "❌ Échec du clonage de $project" # Restaurer la sauvegarde si elle existe if [ -d "$project.backup" ]; then log " Restauration de la sauvegarde..." mv "$project.backup" "$project" fi fi echo "" done log "🎉 Clonage de l'environnement de dĂ©veloppement terminĂ© !" log "📊 RĂ©sumĂ© des dĂ©pĂŽts clonĂ©s:" echo "" echo "DĂ©pĂŽts clonĂ©s sur la branche '$BRANCH':" echo "=======================================" echo "🔧 DĂ©pĂŽts 4NK (SDK, services):" for project in "${PROJECTS[@]}"; do if [[ "$project" == sdk_* ]] || [[ "$project" == "doc_api" ]]; then if [ -d "$project" ]; then echo " ✅ $project" else echo " ❌ $project (Ă©chec)" fi fi done echo "🏠 DĂ©pĂŽts LeCoffre (applications):" for project in "${PROJECTS[@]}"; do if [[ "$project" == lecoffre_* ]] || [[ "$project" == "ihm_client" ]]; then if [ -d "$project" ]; then echo " ✅ $project" else echo " ❌ $project (Ă©chec)" fi fi done echo "🧠 Agents IA (contexte et outillage):" for project in "${PROJECTS[@]}"; do if [[ "$project" == "IA_agents" ]]; then if [ -d "$project" ]; then echo " ✅ $project (contexte complet pour agents IA)" else echo " ❌ $project (Ă©chec - contexte agents IA manquant)" fi fi done echo "" log "🔍 VĂ©rification des branches:" for project in "${PROJECTS[@]}"; do if [ -d "$project" ]; then cd "$project" current_branch=$(git branch --show-current) echo " $project: $current_branch" cd .. fi done echo "" log "📝 Prochaines Ă©tapes:" echo " 1. VĂ©rifier que tous les dĂ©pĂŽts sont sur la branche '$BRANCH'" echo " 2. Configurer les fichiers .gitignore et .dockerignore" echo " 3. Initialiser le dĂ©pĂŽt 4NK_env" echo " 4. Pousser sur git.4nkweb.com" echo " 5. DĂ©ployer LeCoffre avec l'architecture autonome" echo " 6. Utiliser le contexte et outillage des agents IA (IA_agents/)"