Auto-sync:

This commit is contained in:
Lionel
2025-12-31 18:44:59 +01:00
parent f00047c7d1
commit f0ed9041a0

73
sync.sh
View File

@@ -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
# 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