← back to Omega Watches 2

scripts/daily-antiquorum.sh

30 lines

#!/usr/bin/env bash
# daily-antiquorum.sh — Run Antiquorum auction collector
# Schedule: 10:00 UTC daily via cron
# Timeout: 10 minutes
set -euo pipefail

PROJ_DIR="/root/Projects/omega-watches-2"
LOG_DIR="${PROJ_DIR}/logs"
LOG_FILE="${LOG_DIR}/antiquorum-$(date +%Y%m%d).log"

mkdir -p "${LOG_DIR}"

echo "=== Antiquorum Collection Run — $(date -u) ===" >> "${LOG_FILE}"

timeout 600 node "${PROJ_DIR}/collectors/runner.mjs" antiquorum >> "${LOG_FILE}" 2>&1
EXIT_CODE=$?

if [ $EXIT_CODE -eq 0 ]; then
  echo "=== SUCCESS $(date -u) ===" >> "${LOG_FILE}"
  # Refresh materialized views
  PGPASSWORD='OmegaWatch2024Pass' psql -h 127.0.0.1 -U omega_admin -d omega_watches_v2 \
    -c "REFRESH MATERIALIZED VIEW source_health; REFRESH MATERIALIZED VIEW ref_price_summary;" \
    >> "${LOG_FILE}" 2>&1
else
  echo "=== FAILED (exit code: $EXIT_CODE) $(date -u) ===" >> "${LOG_FILE}"
fi

# Rotate logs older than 30 days
find "${LOG_DIR}" -name "antiquorum-*.log" -mtime +30 -delete 2>/dev/null || true