Correction

This commit is contained in:
2025-08-21 09:00:37 +00:00
parent a3b1fe445d
commit 3136d749f7

View File

@@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
# This script is used to update your version of apxtri. It checks the code version in the package.json file. If the version is different, # This script is used to update your version of apxtri and objects.
# the script is triggered. It is launched via a curl request to the apxtri Gitea server, linked to a crontab. # It checks the code version in the package.json files. If the version is different,
# the script is triggered. It is launched via a curl request to the Gitea server, linked to a crontab.
set -euo pipefail set -euo pipefail
@@ -17,25 +18,34 @@ else
exit 1 exit 1
fi fi
# ==== FICHIERS PACKAGE.JSON ==== # ==== NOUVELLE FONCTION POUR LES TRIBUS ====
LOCAL_PACKAGE="$NODEPATH/$TOWN-$NATION/apxtri/package.json" handle_tribes() {
REMOTE_PACKAGE_URL="$URL_REPO/apxtri/raw/branch/main/package.json" local tribes_string="$1"
IFS=',' read -ra TRIBES <<< "$tribes_string"
if [[ ! -f "$LOCAL_PACKAGE" ]]; then if [[ ${#TRIBES[@]} -eq 0 ]]; then
echo "[ERROR] Fichier $LOCAL_PACKAGE introuvable !" >&2 echo "[ERROR] Aucun nom de tribu fourni." >&2
exit 1 exit 1
fi fi
# ==== EXTRAIRE LES VERSIONS ==== echo "📦 Téléchargement des tribus : ${TRIBES[*]}"
LOCAL_VERSION=$(grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+' "$LOCAL_PACKAGE")
REMOTE_VERSION=$(curl -fsSL "$REMOTE_PACKAGE_URL" | grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+')
if [[ -z "$LOCAL_VERSION" || -z "$REMOTE_VERSION" ]]; then for tribe in "${TRIBES[@]}"; do
echo "[ERROR] Impossible de lire les versions locale/distante" >&2 tribe=$(echo "$tribe" | xargs) # trim espaces
exit 1 if [[ -z "$tribe" ]]; then
continue
fi fi
echo "➡️ Clonage de la tribu '$tribe'..."
# Lien factice pour linstant :
git clone "https://fake.repo.url/${tribe}.git" "$NODEPATH/$TOWN-$NATION/$tribe" || true
done
}
echo "$DATE 🔍 Version locale : $LOCAL_VERSION Version distante: $REMOTE_VERSION" # ==== VÉRIFIER LES PARAMÈTRES ====
if [[ $# -ge 1 ]]; then
handle_tribes "$1"
exit 0
fi
# ==== FONCTION COMPARAISON SEMVER ==== # ==== FONCTION COMPARAISON SEMVER ====
compare_versions() { compare_versions() {
@@ -49,49 +59,102 @@ compare_versions() {
# comparer major, minor, patch dans l'ordre # comparer major, minor, patch dans l'ordre
for i in 0 1 2; do for i in 0 1 2; do
if ((10#${ver1[i]} < 10#${ver2[i]})); then if ((10#${ver1[i]} < 10#${ver2[i]})); then
echo "lt-$i" # version locale < distante à ce niveau echo "lt-$i"
return return
elif ((10#${ver1[i]} > 10#${ver2[i]})); then elif ((10#${ver1[i]} > 10#${ver2[i]})); then
echo "gt-$i" # version locale > distante echo "gt-$i"
return return
fi fi
done done
echo "eq" # exactement égal echo "eq"
} }
# ==== PACKAGE.JSON APXTRI ====
LOCAL_PACKAGE="$NODEPATH/$TOWN-$NATION/apxtri/package.json"
REMOTE_PACKAGE_URL="$URL_REPO/apxtri/raw/branch/main/package.json"
if [[ ! -f "$LOCAL_PACKAGE" ]]; then
echo "[ERROR] Fichier $LOCAL_PACKAGE introuvable !" >&2
exit 1
fi
LOCAL_VERSION=$(grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+' "$LOCAL_PACKAGE")
REMOTE_VERSION=$(curl -fsSL "$REMOTE_PACKAGE_URL" | grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+')
if [[ -z "$LOCAL_VERSION" || -z "$REMOTE_VERSION" ]]; then
echo "[ERROR] Impossible de lire les versions locale/distante (apxtri)" >&2
exit 1
fi
echo "$DATE 🔍 [apxtri] Local: $LOCAL_VERSION / Remote: $REMOTE_VERSION"
RESULT=$(compare_versions "$LOCAL_VERSION" "$REMOTE_VERSION") RESULT=$(compare_versions "$LOCAL_VERSION" "$REMOTE_VERSION")
case "$RESULT" in case "$RESULT" in
eq) eq)
echo "$DATE ✅ Aucune mise à jour nécessaire.($LOCAL_VERSION -> $REMOTE_VERSION)" echo "$DATE [apxtri] Aucune mise à jour nécessaire."
exit 0
;; ;;
lt-0) lt-0)
echo "$DATE ⚠️ New major version. Check your README and your code before update.($LOCAL_VERSION -> $REMOTE_VERSION)." echo "$DATE ⚠️ [apxtri] Nouvelle version majeure. Vérifie avant update."
exit 0
;; ;;
lt-1|lt-2) lt-1|lt-2)
echo "$DATE ⬆️ Minor version detected.($LOCAL_VERSION -> $REMOTE_VERSION). Updating..." echo "$DATE ⬆️ [apxtri] Mise à jour mineure... Updating..."
;; echo "⚡ [apxtri] Mise à jour en cours..."
gt-*)
echo "$DATE ⚠️ Local version ($LOCAL_VERSION) est plus récente que la distante ($REMOTE_VERSION)."
exit 0
;;
esac
# ==== MISE A JOUR ====
echo "⚡ Mise à jour en cours..."
sudo apt update && sudo apt upgrade -y sudo apt update && sudo apt upgrade -y
cd "$NODEPATH/$TOWN-$NATION/apxtri" cd "$NODEPATH/$TOWN-$NATION/apxtri"
git pull origin main git pull origin main
npm install npm install
if [[ "$MODE" == "prod" ]]; then if [[ "$MODE" == "prod" ]]; then
echo "🔄 Redémarrage du service..." echo "🔄 [apxtri] Redémarrage du service..."
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl restart apxtri.service sudo systemctl restart apxtri.service
fi fi
;;
gt-*)
echo "$DATE ⚠️ [apxtri] Version locale plus récente que distante."
;;
esac
# ==== PACKAGE.JSON OBJECTS ====
LOCAL_PACKAGE="$DATAPATH/data/objects/package.json"
REMOTE_PACKAGE_URL="$URL_REPO/objects/raw/branch/main/package.json"
if [[ ! -f "$LOCAL_PACKAGE" ]]; then
echo "[ERROR] Fichier $LOCAL_PACKAGE introuvable !" >&2
exit 1
fi
LOCAL_VERSION=$(grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+' "$LOCAL_PACKAGE")
REMOTE_VERSION=$(curl -fsSL "$REMOTE_PACKAGE_URL" | grep -oP '"version"\s*:\s*"\K[0-9]+\.[0-9]+\.[0-9]+')
if [[ -z "$LOCAL_VERSION" || -z "$REMOTE_VERSION" ]]; then
echo "[ERROR] Impossible de lire les versions locale/distante (objects)" >&2
exit 1
fi
echo "$DATE 🔍 [objects] Local: $LOCAL_VERSION / Remote: $REMOTE_VERSION"
RESULT=$(compare_versions "$LOCAL_VERSION" "$REMOTE_VERSION")
case "$RESULT" in
eq)
echo "$DATE ✅ [objects] Aucune mise à jour nécessaire."
;;
lt-0)
echo "$DATE ⚠️ [objects] Nouvelle version majeure. Vérifie avant update."
;;
lt-1|lt-2)
echo "$DATE ⬆️ [objects] Mise à jour mineure... Updating..."
echo "⚡ [objects] Mise à jour en cours..."
sudo apt update && sudo apt upgrade -y
cd "$DATAPATH/data/objects"
git pull origin main
npm install
;;
gt-*)
echo "$DATE ⚠️ [objects] Version locale plus récente que distante."
;;
esac
echo "✅ Mise à jour terminée avec succès." echo "✅ Mise à jour terminée avec succès."