Auto-sync:
This commit is contained in:
73
sync.sh
73
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
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user