35 行
752 B
Bash
35 行
752 B
Bash
#!/bin/bash
|
|
# Cron job: check trigger file, rebuild Nuxt if present
|
|
TRIGGER="/tmp/gw-rebuild-trigger"
|
|
LOCK="/tmp/gw-rebuild.lock"
|
|
LOG="/tmp/gw-rebuild.log"
|
|
|
|
[ ! -f "$TRIGGER" ] && exit 0
|
|
|
|
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "$LOG"; }
|
|
|
|
# Prevent concurrent rebuilds
|
|
if [ -f "$LOCK" ]; then
|
|
pid=$(cat "$LOCK")
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
exit 0
|
|
fi
|
|
rm -f "$LOCK"
|
|
fi
|
|
echo $$ > "$LOCK"
|
|
trap "rm -f $LOCK" EXIT
|
|
|
|
MODULES=$(cat "$TRIGGER")
|
|
rm -f "$TRIGGER"
|
|
|
|
log "Rebuild triggered by: $MODULES"
|
|
cd /opt/gw/hulai-website || exit 1
|
|
|
|
pnpm build >> "$LOG" 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
pm2 restart gw-website --update-env >> "$LOG" 2>&1
|
|
log "Rebuild + restart complete"
|
|
else
|
|
log "ERROR: Nuxt build failed"
|
|
fi
|