Actualiser recuperation_config.sh

This commit is contained in:
admin-linexos 2024-11-26 16:55:57 +00:00
parent 00e00a6dce
commit d27c7e8d2f
1 changed files with 24 additions and 24 deletions

View File

@ -6,21 +6,15 @@ BASE_URL="https://repolake.alc-crm.com"
API_URL="$BASE_URL/api/v1" API_URL="$BASE_URL/api/v1"
REPO_NAME=$(hostname) REPO_NAME=$(hostname)
REPO_URL="$BASE_URL/$ORG/$REPO_NAME.git" REPO_URL="$BASE_URL/$ORG/$REPO_NAME.git"
REPO_PATH="/etc/gitea/ConfigSysRepo" # Chemin local générique pour cloner les dépôts REPO_PATH="/etc/gitea/CONFIGS/$REPO_NAME" # Ajusté pour inclure l'organisation correcte
BRANCH="main" BRANCH="main"
TOKEN="434ac97ae9def5ac02024971582e82dd35f89ee0" TOKEN="434ac97ae9def5ac02024971582e82dd35f89ee0"
REPO_URL_TOKEN="https://$TOKEN@repolake.alc-crm.com/$ORG/$REPO_NAME.git" REPO_URL_TOKEN="https://$TOKEN@repolake.alc-crm.com/$ORG/$REPO_NAME.git"
HOSTNAME=$(hostname) # Nom de la machine HOSTNAME=$(hostname)
echo "Début du script pour $HOSTNAME" echo "Début du script pour $HOSTNAME"
# Configurer les informations utilisateur Git pour le dépôt local si elles ne sont pas déjà configurées # Vérifie si le dépôt existe déjà via l'API
if ! git config user.name &>/dev/null; then
git config user.name "admin-linexos"
git config user.email "technique@linexos.fr"
fi
# Vérifie si le dépôt existe déjà en utilisant l'API de Gitea
response=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $TOKEN" "$API_URL/repos/$ORG/$REPO_NAME") response=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $TOKEN" "$API_URL/repos/$ORG/$REPO_NAME")
if [ "$response" -ne 200 ]; then if [ "$response" -ne 200 ]; then
@ -34,33 +28,41 @@ else
echo "Le dépôt $REPO_NAME existe déjà." echo "Le dépôt $REPO_NAME existe déjà."
fi fi
# Vérifie si le répertoire du dépôt existe localement et le clone si nécessaire # Vérifie si le répertoire du dépôt existe localement
if [ ! -d "$REPO_PATH/.git" ]; then if [ ! -d "$REPO_PATH/.git" ]; then
echo "Le dépôt n'existe pas localement. Clonage du dépôt..." echo "Clonage dans $REPO_PATH..."
git clone "$REPO_URL_TOKEN" "$REPO_PATH" git clone "$REPO_URL_TOKEN" "$REPO_PATH"
cd "$REPO_PATH" cd "$REPO_PATH"
# Initialisation du dépôt local et création de la branche main
echo "Initialisation du dépôt local..."
git checkout -b $BRANCH git checkout -b $BRANCH
touch .gitkeep # Ajoute un fichier pour initialiser le dépôt touch .gitkeep
git add .gitkeep git add .gitkeep
git commit -m "Initial commit" git commit -m "Initial commit"
git push --set-upstream origin $BRANCH git push --set-upstream origin $BRANCH
else else
echo "Le dépôt existe déjà localement." echo "Le dépôt existe localement."
cd "$REPO_PATH" cd "$REPO_PATH"
git checkout $BRANCH || git checkout -b $BRANCH git checkout $BRANCH || git checkout -b $BRANCH
fi fi
# Tente de mettre à jour le dépôt local en cas de modifications distantes # Configurer les informations utilisateur Git
if ! git config user.name &>/dev/null; then
git config user.name "admin-linexos"
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 git pull --rebase origin $BRANCH
# Lecture des chemins des fichiers depuis le fichier de configuration # Lecture des chemins depuis le fichier de configuration
CONFIG_FILE="/etc/gitea/path_config" # Chemin du fichier de configuration CONFIG_FILE="/etc/gitea/path_config"
if [ ! -f "$CONFIG_FILE" ]; then if [ ! -f "$CONFIG_FILE" ]; then
echo "Le fichier de configuration $CONFIG_FILE n'existe pas." echo "Le fichier $CONFIG_FILE n'existe pas."
exit 1 exit 1
fi fi
@ -70,17 +72,15 @@ while IFS= read -r file; do
if [ -f "$file" ]; then if [ -f "$file" ]; then
DEST_DIR="$REPO_PATH/$(dirname "$file")" DEST_DIR="$REPO_PATH/$(dirname "$file")"
mkdir -p "$DEST_DIR" mkdir -p "$DEST_DIR"
echo "Copie de $file vers $DEST_DIR"
cp "$file" "$DEST_DIR" cp "$file" "$DEST_DIR"
echo "Copié $file vers $DEST_DIR"
else else
echo "Le fichier $file n'existe pas: $file" echo "Le fichier $file n'existe pas: $file"
fi fi
done < "$CONFIG_FILE" done < "$CONFIG_FILE"
# Ajout de toutes les modifications # Ajout et push des modifications
git add -A git add -A
# Git operations
git commit -m "Mise à jour des fichiers de configuration pour $HOSTNAME" git commit -m "Mise à jour des fichiers de configuration pour $HOSTNAME"
git push origin $BRANCH git push origin $BRANCH
echo "Modifications poussées vers le dépôt." echo "Modifications poussées vers le dépôt."