#!/bin/bash REPO_API="https://git.xiaoxiajianji.com/api/v1/repos/xiaoxia/xiaoxia-saas/commits?sha=develop&path=deploy/gpu_worker&limit=1" STATE_FILE="/home/ying/projects/gpu-webhook/.last_commit" UPDATE_SCRIPT="/home/ying/projects/update-gpu-worker.sh" LOG_FILE="$HOME/gpu-poll.log" log() { echo "[$(date +"%Y-%m-%d %H:%M:%S")] $*" >> "$LOG_FILE" } LATEST_SHA=$(curl -sk --max-time 10 "$REPO_API" | python3 -c " import sys, json try: data = json.load(sys.stdin) if isinstance(data, list) and len(data) > 0: print(data[0].get('sha', '')) else: print('') except: print('') " 2>/dev/null) if [ -z "$LATEST_SHA" ]; then log "get latest commit failed, skip" exit 0 fi LAST_SHA="" if [ -f "$STATE_FILE" ]; then LAST_SHA=$(cat "$STATE_FILE") fi if [ "$LATEST_SHA" = "$LAST_SHA" ]; then exit 0 fi if [ -z "$LAST_SHA" ]; then echo "$LATEST_SHA" > "$STATE_FILE" log "first run, recording SHA: $LATEST_SHA" exit 0 fi log "new commit detected: $LAST_SHA -> $LATEST_SHA, triggering update" echo "$LATEST_SHA" > "$STATE_FILE" bash "$UPDATE_SCRIPT" >> "$LOG_FILE" 2>&1 log "update completed"