From f0ed9041a04b15e2f5d8df304a2b5071b0c68bc5 Mon Sep 17 00:00:00 2001 From: Lionel Date: Wed, 31 Dec 2025 18:44:59 +0100 Subject: [PATCH] Auto-sync: --- sync.sh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 11 deletions(-) diff --git a/sync.sh b/sync.sh index 07bc442..ad6b59f 100755 --- a/sync.sh +++ b/sync.sh @@ -1,12 +1,65 @@ #!/bin/bash -cd /home/lionel/docker/docs -git fetch origin main --quiet -LOCAL=$(git rev-parse HEAD) -REMOTE=$(git rev-parse origin/main) -if [ "$LOCAL" != "$REMOTE" ]; then - git pull origin main --quiet - echo "$(date): Pulled new changes" >> /home/lionel/docker/docs/sync.log - # Force MkDocs to rebuild by sending SIGHUP - docker kill --signal=SIGHUP mkdocs 2>/dev/null || docker restart mkdocs - echo "$(date): Triggered MkDocs rebuild" >> /home/lionel/docker/docs/sync.log -fi +# Sync bidirectionnelle MkDocs <-> Gitea (202601docs) +# Usage: ./sync.sh [push|pull|auto] + +DOCS_DIR="/home/lionel/talloires-v2/mkdocs" +LOG_FILE="$DOCS_DIR/sync.log" +REMOTE="origin" +BRANCH="main" + +cd "$DOCS_DIR" || exit 1 + +log() { + echo "$(date +%Y-%m-%d %H:%M:%S): $1" >> "$LOG_FILE" +} + +# Fetch latest from remote +git fetch "$REMOTE" "$BRANCH" --quiet 2>/dev/null + +LOCAL=$(git rev-parse HEAD 2>/dev/null) +REMOTE_REV=$(git rev-parse "$REMOTE/$BRANCH" 2>/dev/null) + +case "${1:-auto}" in + push) + # Push local changes to Gitea + git add -A + if ! git diff --cached --quiet; then + git commit -m "Auto-sync: $(date +%Y-%m-%d %H:%M)" + git push "$REMOTE" "$BRANCH" --quiet + log "Pushed local changes to Gitea" + else + log "Nothing to push" + fi + ;; + pull) + # Pull from Gitea + if [ "$LOCAL" != "$REMOTE_REV" ]; then + git pull "$REMOTE" "$BRANCH" --quiet + log "Pulled changes from Gitea" + docker kill --signal=SIGHUP mkdocs 2>/dev/null || docker restart mkdocs + log "Triggered MkDocs rebuild" + else + log "Already up to date" + fi + ;; + auto) + # Auto: pull first, then push local changes + # Check for remote changes + if [ "$LOCAL" != "$REMOTE_REV" ]; then + git stash --quiet 2>/dev/null + git pull "$REMOTE" "$BRANCH" --quiet + git stash pop --quiet 2>/dev/null + log "Pulled changes from Gitea" + fi + + # Check for local changes + git add -A + if ! git diff --cached --quiet; then + git commit -m "Auto-sync: $(date +%Y-%m-%d %H:%M)" + git push "$REMOTE" "$BRANCH" --quiet + log "Pushed local changes to Gitea" + docker kill --signal=SIGHUP mkdocs 2>/dev/null || docker restart mkdocs + log "Triggered MkDocs rebuild" + fi + ;; +esac