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

66 lines
1.9 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 +%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