diff --git a/auto-sync.sh b/auto-sync.sh new file mode 100644 index 0000000..f4b1dfb --- /dev/null +++ b/auto-sync.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Auto-sync script for Web-Page-Performance-Test +# This script is run by cron every 5 minutes + +LOG_FILE="/var/log/Web-Page-Performance-Test-autosync.log" + +log() { + echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE" +} + +# Fetch latest changes +git fetch origin main + +# Check if we are behind +LOCAL=$(git rev-parse HEAD) +REMOTE=$(git rev-parse origin/main) + +if [ "$LOCAL" != "$REMOTE" ]; then + log "Updates detected. Pulling..." + + # Pull changes + git pull origin main >> "$LOG_FILE" 2>&1 + + # Install dependencies if package.json changed + if git diff --name-only "$LOCAL" "$REMOTE" | grep -q "package.json"; then + log "package.json changed. Installing dependencies..." + npm install --production >> "$LOG_FILE" 2>&1 + fi + + # Restart service + log "Restarting service..." + systemctl restart Web-Page-Performance-Test + + log "Update complete. New version: $(git rev-parse --short HEAD)" +else + # No changes, do nothing (silent to avoid log spam) + : +fi