Files
202601docs/sync.sh
2025-12-31 18:45:09 +01:00

61 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# 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): $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)
git add -A
if ! git diff --cached --quiet; then
git commit -m "Auto-sync $(date)"
git push "$REMOTE" "$BRANCH" --quiet
log "Pushed local changes to Gitea"
else
log "Nothing to push"
fi
;;
pull)
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)
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
git add -A
if ! git diff --cached --quiet; then
git commit -m "Auto-sync $(date)"
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