166 lines
4.7 KiB
Bash
Executable File
166 lines
4.7 KiB
Bash
Executable File
#!/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-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/)"
|