fix: supprime --delete, exclut wiki/ et fichiers ISPConfig
Push : additive uniquement (pas de suppression sur le serveur) Pull : idem, wiki/ exclu des deux côtés Excludes communs : .git/, scripts/, README.md, .env*, .gitignore, wiki/ Correction bug bash set -e avec ((VAR++)) → VAR=$(( VAR + 1 )) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
1c0731a829
commit
7c70e904f3
3 changed files with 25 additions and 13 deletions
|
|
@ -2,8 +2,8 @@
|
||||||
STATIC_USER=<votre-utilisateur-ssh>
|
STATIC_USER=<votre-utilisateur-ssh>
|
||||||
STATIC_HOST=alpinux.org
|
STATIC_HOST=alpinux.org
|
||||||
|
|
||||||
# Chemin vers le dossier logo dans le web root ISPConfig
|
# Chemin vers le web root ISPConfig (dossier web/ complet)
|
||||||
STATIC_PATH=/var/www/clients/client1/web17/web/logo
|
STATIC_PATH=/var/www/clients/client1/web17/web
|
||||||
|
|
||||||
# Répertoire local des assets générés par wiki/scripts/build-assets.py
|
# Répertoire local source (racine du repo alpinux-static)
|
||||||
LOCAL_ASSETS_DIR=/tmp/alpinux-static-assets
|
LOCAL_ASSETS_DIR=<chemin absolu vers org.alpinux.owni/static>
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,13 @@ echo -e " Source : ${CYAN}$REMOTE${RESET}"
|
||||||
echo -e " Cible : ${CYAN}$LOCAL_DIR/${RESET}"
|
echo -e " Cible : ${CYAN}$LOCAL_DIR/${RESET}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
EXCLUDES=(--exclude='.git/' --exclude='scripts/' --exclude='README.md'
|
||||||
|
--exclude='.env' --exclude='.env.example' --exclude='.gitignore'
|
||||||
|
--exclude='wiki/')
|
||||||
|
|
||||||
DIFF=$(rsync -rlcz --dry-run --itemize-changes \
|
DIFF=$(rsync -rlcz --dry-run --itemize-changes \
|
||||||
--rsync-path="sudo rsync" \
|
--rsync-path="sudo rsync" \
|
||||||
|
"${EXCLUDES[@]}" \
|
||||||
"$REMOTE" "$LOCAL_DIR/" 2>&1)
|
"$REMOTE" "$LOCAL_DIR/" 2>&1)
|
||||||
|
|
||||||
NEW=0; CHANGED=0
|
NEW=0; CHANGED=0
|
||||||
|
|
@ -63,10 +68,10 @@ while IFS= read -r line; do
|
||||||
[ -z "$file" ] && continue
|
[ -z "$file" ] && continue
|
||||||
if [[ "$item" =~ ^\>f\+{6,} || "$item" =~ ^\.f\+{6,} ]]; then
|
if [[ "$item" =~ ^\>f\+{6,} || "$item" =~ ^\.f\+{6,} ]]; then
|
||||||
echo -e " ${GREEN}nouveau ${RESET} $file"
|
echo -e " ${GREEN}nouveau ${RESET} $file"
|
||||||
((NEW++))
|
NEW=$(( NEW + 1 ))
|
||||||
elif [[ "$item" =~ ^\>f || "$item" =~ ^\.f ]]; then
|
elif [[ "$item" =~ ^\>f || "$item" =~ ^\.f ]]; then
|
||||||
echo -e " ${YELLOW}modifié ${RESET} $file"
|
echo -e " ${YELLOW}modifié ${RESET} $file"
|
||||||
((CHANGED++))
|
CHANGED=$(( CHANGED + 1 ))
|
||||||
fi
|
fi
|
||||||
done <<< "$DIFF"
|
done <<< "$DIFF"
|
||||||
|
|
||||||
|
|
@ -81,7 +86,7 @@ echo ""
|
||||||
echo -e " ${GREEN}+$NEW nouveau(x)${RESET} ${YELLOW}~$CHANGED modifié(s)${RESET}"
|
echo -e " ${GREEN}+$NEW nouveau(x)${RESET} ${YELLOW}~$CHANGED modifié(s)${RESET}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
$DRY_RUN && { echo -e "${CYAN}Mode dry-run — aucune modification effectuée.${RESET}"; exit 0; }
|
if $DRY_RUN; then echo -e "${CYAN}Mode dry-run — aucune modification effectuée.${RESET}"; exit 0; fi
|
||||||
|
|
||||||
# ── Confirmation ────────────────────────────────────────────────────
|
# ── Confirmation ────────────────────────────────────────────────────
|
||||||
if ! $AUTO_YES; then
|
if ! $AUTO_YES; then
|
||||||
|
|
@ -94,6 +99,7 @@ echo ""
|
||||||
echo -e "${BOLD}Récupération en cours…${RESET}"
|
echo -e "${BOLD}Récupération en cours…${RESET}"
|
||||||
rsync -rlcz --human-readable --progress \
|
rsync -rlcz --human-readable --progress \
|
||||||
--rsync-path="sudo rsync" \
|
--rsync-path="sudo rsync" \
|
||||||
|
"${EXCLUDES[@]}" \
|
||||||
"$REMOTE" "$LOCAL_DIR/"
|
"$REMOTE" "$LOCAL_DIR/"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,13 @@ echo -e " Source : ${CYAN}$LOCAL_DIR/${RESET}"
|
||||||
echo -e " Cible : ${CYAN}$REMOTE${RESET}"
|
echo -e " Cible : ${CYAN}$REMOTE${RESET}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
DIFF=$(rsync -rlcz --dry-run --itemize-changes --delete \
|
EXCLUDES=(--exclude='.git/' --exclude='scripts/' --exclude='README.md'
|
||||||
|
--exclude='.env' --exclude='.env.example' --exclude='.gitignore'
|
||||||
|
--exclude='wiki/')
|
||||||
|
|
||||||
|
DIFF=$(rsync -rlcz --dry-run --itemize-changes \
|
||||||
--rsync-path="sudo rsync" \
|
--rsync-path="sudo rsync" \
|
||||||
|
"${EXCLUDES[@]}" \
|
||||||
"$LOCAL_DIR/" "$REMOTE" 2>&1)
|
"$LOCAL_DIR/" "$REMOTE" 2>&1)
|
||||||
|
|
||||||
NEW=0; CHANGED=0; DELETED=0
|
NEW=0; CHANGED=0; DELETED=0
|
||||||
|
|
@ -67,13 +72,13 @@ while IFS= read -r line; do
|
||||||
[ -z "$file" ] && continue
|
[ -z "$file" ] && continue
|
||||||
if [[ "$item" == *"deleting"* ]]; then
|
if [[ "$item" == *"deleting"* ]]; then
|
||||||
echo -e " ${RED}supprimé ${RESET} $file"
|
echo -e " ${RED}supprimé ${RESET} $file"
|
||||||
((DELETED++))
|
DELETED=$(( DELETED + 1 ))
|
||||||
elif [[ "$item" =~ ^\>f\+{6,} ]]; then
|
elif [[ "$item" =~ ^\>f\+{6,} ]]; then
|
||||||
echo -e " ${GREEN}nouveau ${RESET} $file"
|
echo -e " ${GREEN}nouveau ${RESET} $file"
|
||||||
((NEW++))
|
NEW=$(( NEW + 1 ))
|
||||||
elif [[ "$item" =~ ^\>f ]]; then
|
elif [[ "$item" =~ ^\>f ]]; then
|
||||||
echo -e " ${YELLOW}modifié ${RESET} $file"
|
echo -e " ${YELLOW}modifié ${RESET} $file"
|
||||||
((CHANGED++))
|
CHANGED=$(( CHANGED + 1 ))
|
||||||
fi
|
fi
|
||||||
done <<< "$DIFF"
|
done <<< "$DIFF"
|
||||||
|
|
||||||
|
|
@ -88,7 +93,7 @@ echo ""
|
||||||
echo -e " ${GREEN}+$NEW nouveau(x)${RESET} ${YELLOW}~$CHANGED modifié(s)${RESET} ${RED}-$DELETED supprimé(s)${RESET}"
|
echo -e " ${GREEN}+$NEW nouveau(x)${RESET} ${YELLOW}~$CHANGED modifié(s)${RESET} ${RED}-$DELETED supprimé(s)${RESET}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
$DRY_RUN && { echo -e "${CYAN}Mode dry-run — aucune modification effectuée.${RESET}"; exit 0; }
|
if $DRY_RUN; then echo -e "${CYAN}Mode dry-run — aucune modification effectuée.${RESET}"; exit 0; fi
|
||||||
|
|
||||||
# ── Confirmation ────────────────────────────────────────────────────
|
# ── Confirmation ────────────────────────────────────────────────────
|
||||||
if ! $AUTO_YES; then
|
if ! $AUTO_YES; then
|
||||||
|
|
@ -99,8 +104,9 @@ fi
|
||||||
# ── Synchronisation ─────────────────────────────────────────────────
|
# ── Synchronisation ─────────────────────────────────────────────────
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BOLD}Synchronisation en cours…${RESET}"
|
echo -e "${BOLD}Synchronisation en cours…${RESET}"
|
||||||
rsync -rlcz --human-readable --progress --delete \
|
rsync -rlcz --human-readable --progress \
|
||||||
--rsync-path="sudo rsync" \
|
--rsync-path="sudo rsync" \
|
||||||
|
"${EXCLUDES[@]}" \
|
||||||
"$LOCAL_DIR/" "$REMOTE"
|
"$LOCAL_DIR/" "$REMOTE"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue