diff --git a/recuperation_config.sh b/recuperation_config.sh index 43112f7..fed4f73 100755 --- a/recuperation_config.sh +++ b/recuperation_config.sh @@ -2,47 +2,52 @@ # Configuration des variables ORG="CONFIGS" -CLIENT="SFR" # Exemple de client +CLIENT="SFR" # Le dépôt principal (SFR) BASE_URL="https://repolake.alc-crm.com" API_URL="$BASE_URL/api/v1" -REPO_NAME=$(hostname) -REPO_URL="$BASE_URL/$ORG/$REPO_NAME.git" -REPO_PATH="/etc/gitea/CONFIGS/$REPO_NAME" # Ajusté pour inclure l'organisation correcte -BRANCH="main" +REPO_NAME="$CLIENT" # Utilisation de SFR comme dépôt principal +REPO_PATH="/etc/gitea/$ORG/$CLIENT" # Chemin local pour le dépôt principal +BRANCH=$(hostname) # Une branche ou un sous-dossier par machine TOKEN="434ac97ae9def5ac02024971582e82dd35f89ee0" REPO_URL_TOKEN="https://$TOKEN@repolake.alc-crm.com/$ORG/$REPO_NAME.git" HOSTNAME=$(hostname) -echo "Début du script pour $HOSTNAME" +echo "Début du script pour $HOSTNAME dans le dépôt principal $CLIENT" -# Vérifie si le dépôt existe déjà via l'API -response=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $TOKEN" "$API_URL/repos/$ORG/$REPO_NAME") +# Vérifie si le dépôt principal (SFR) existe +response_repo=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $TOKEN" "$API_URL/repos/$ORG/$REPO_NAME") -if [ "$response" -ne 200 ]; then - echo "Le dépôt $REPO_NAME n'existe pas. Création du dépôt..." +if [ "$response_repo" -ne 200 ]; then + echo "Le dépôt principal $CLIENT n'existe pas. Création du dépôt..." curl -s -X POST -H "Authorization: token $TOKEN" \ -H "Content-Type: application/json" \ -d "{\"name\": \"$REPO_NAME\", \"private\": false}" \ "$API_URL/orgs/$ORG/repos" - echo "Dépôt $REPO_NAME créé." + echo "Dépôt principal $CLIENT créé." else - echo "Le dépôt $REPO_NAME existe déjà." + echo "Le dépôt principal $CLIENT existe déjà." fi -# Vérifie si le répertoire du dépôt existe localement +# Vérifie si le dépôt principal est cloné localement if [ ! -d "$REPO_PATH/.git" ]; then - echo "Clonage dans $REPO_PATH..." + echo "Clonage du dépôt principal dans $REPO_PATH..." git clone "$REPO_URL_TOKEN" "$REPO_PATH" - cd "$REPO_PATH" - git checkout -b $BRANCH - touch .gitkeep - git add .gitkeep - git commit -m "Initial commit" - git push --set-upstream origin $BRANCH + if [ $? -ne 0 ]; then + echo "Erreur : Échec du clonage. Vérifiez l'URL ou les permissions." + exit 1 + fi +fi + +cd "$REPO_PATH" + +# Crée une branche pour la machine si elle n'existe pas +if git branch --list | grep -q "$BRANCH"; then + echo "La branche $BRANCH existe déjà." + git checkout "$BRANCH" else - echo "Le dépôt existe localement." - cd "$REPO_PATH" - git checkout $BRANCH || git checkout -b $BRANCH + echo "Création de la branche $BRANCH pour la machine $HOSTNAME..." + git checkout -b "$BRANCH" + git push --set-upstream origin "$BRANCH" fi # Configurer les informations utilisateur Git @@ -51,14 +56,6 @@ if ! git config user.name &>/dev/null; then git config user.email "technique@linexos.fr" fi -# Vérifier et corriger l'URL du dépôt distant -git remote set-url origin "$REPO_URL_TOKEN" -echo "URL distante configurée pour : $REPO_URL_TOKEN" -git remote -v # Afficher l'URL distante configurée - -# Pull des mises à jour distantes -git pull --rebase origin $BRANCH - # Lecture des chemins depuis le fichier de configuration CONFIG_FILE="/etc/gitea/path_config" @@ -67,11 +64,11 @@ if [ ! -f "$CONFIG_FILE" ]; then exit 1 fi -echo "Copie des fichiers de configuration en maintenant l'arborescence..." +echo "Copie des fichiers de configuration en maintenant l'arborescence dans la branche $BRANCH..." while IFS= read -r file; do if [ -f "$file" ]; then - DEST_DIR="$REPO_PATH/$(dirname "$file")" + DEST_DIR="$REPO_PATH/$HOSTNAME/$(dirname "$file")" mkdir -p "$DEST_DIR" cp "$file" "$DEST_DIR" echo "Copié $file vers $DEST_DIR" @@ -83,7 +80,8 @@ done < "$CONFIG_FILE" # Ajout et push des modifications git add -A git commit -m "Mise à jour des fichiers de configuration pour $HOSTNAME" -git push origin $BRANCH -echo "Modifications poussées vers le dépôt." +git push origin "$BRANCH" || echo "Erreur lors du push. Vérifiez les permissions ou la connectivité réseau." -echo "Fin du script." +echo "Modifications poussées vers le dépôt principal $CLIENT dans la branche $BRANCH." + +echo "Fin du script pour $HOSTNAME dans le dépôt principal $CLIENT."