gitea/configs.sh

76 lines
2.4 KiB
Bash
Raw Normal View History

2024-05-22 07:09:56 +00:00
#!/bin/bash
# Configuration des variables
ORG="CONFIGS"
BASE_URL="http://10.106.100.152:3001"
API_URL="$BASE_URL/api/v1"
REPO_NAME=$(hostname)
REPO_URL="$BASE_URL/$ORG/$REPO_NAME.git"
REPO_PATH="/etc/gitea/ConfigSysRepo" # Chemin local générique pour cloner les dépôts
BRANCH="main"
TOKEN="94f0bbfab6bb535dfd51e7387cc65fc75faa28f0"
REPO_URL_TOKEN="http://$TOKEN@10.13.1.126:3001/$ORG/$REPO_NAME.git"
HOSTNAME=$(hostname) # Nom de la machine
echo "Début du script pour $HOSTNAME"
# 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")
if [ "$response" -ne 200 ]; then
echo "Le dépôt $REPO_NAME 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éé."
else
echo "Le dépôt $REPO_NAME existe déjà."
fi
# Vérifie si le répertoire du dépôt existe localement et le clone si nécessaire
if [ ! -d "$REPO_PATH/.git" ]; then
echo "Le dépôt n'existe pas localement. Clonage du dépôt..."
git clone "$REPO_URL_TOKEN" "$REPO_PATH"
else
echo "Le dépôt existe déjà localement."
fi
# Changement dans le répertoire du dépôt
cd "$REPO_PATH"
git checkout $BRANCH
git remote set-url origin $REPO_URL_TOKEN
# Tente de mettre à jour le dépôt local en cas de modifications distantes
git pull --rebase origin $BRANCH
# Lecture des chemins des fichiers depuis le fichier de configuration
2024-05-22 09:04:21 +00:00
CONFIG_FILE="/etc/gitea/path_config" # Chemin du fichier de configuration
2024-05-22 07:09:56 +00:00
if [ ! -f "$CONFIG_FILE" ]; then
echo "Le fichier de configuration $CONFIG_FILE n'existe pas."
exit 1
fi
echo "Copie des fichiers de configuration en maintenant l'arborescence..."
while IFS= read -r file; do
if [ -f "$file" ]; then
DEST_DIR="$REPO_PATH/$(dirname "$file")"
mkdir -p "$DEST_DIR"
echo "Copie de $file vers $DEST_DIR"
cp "$file" "$DEST_DIR"
else
echo "Le fichier $file n'existe pas."
fi
done < "$CONFIG_FILE"
# Ajout de toutes les modifications, y compris les suppressions
git add -A
# Git operations
git commit -m "Mise à jour des fichiers de configuration pour $HOSTNAME"
git push origin $BRANCH
echo "Modifications poussées vers le dépôt."
echo "Fin du script."