66 lines
1.9 KiB
Bash
Executable File
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
|