← back to Omega Watches 2

scripts/daily-msrp.sh

40 lines

#!/bin/bash
# Daily MSRP Collection Script
# Scheduled via cron: 0 6 * * * /root/Projects/omega-watches-2/scripts/daily-msrp.sh
# Runs the Omega Official MSRP collector and logs results

LOG_DIR="/root/Projects/omega-watches-2/logs"
LOG_FILE="$LOG_DIR/msrp-collection-$(date +%Y-%m-%d).log"
PROJECT_DIR="/root/Projects/omega-watches-2"

mkdir -p "$LOG_DIR"

echo "========================================" >> "$LOG_FILE"
echo "MSRP Collection Run: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> "$LOG_FILE"
echo "========================================" >> "$LOG_FILE"

cd "$PROJECT_DIR"

# Run the MSRP collector
timeout 300 node collectors/runner.mjs omega_official >> "$LOG_FILE" 2>&1
EXIT_CODE=$?

if [ $EXIT_CODE -eq 0 ]; then
  echo "STATUS: SUCCESS" >> "$LOG_FILE"
elif [ $EXIT_CODE -eq 124 ]; then
  echo "STATUS: TIMEOUT (5 min limit)" >> "$LOG_FILE"
else
  echo "STATUS: FAILED (exit code $EXIT_CODE)" >> "$LOG_FILE"
fi

echo "" >> "$LOG_FILE"

# Cleanup logs older than 30 days
find "$LOG_DIR" -name "msrp-collection-*.log" -mtime +30 -delete 2>/dev/null

# Refresh materialized views
PGPASSWORD=OmegaWatch2024Pass psql -h 127.0.0.1 -U omega_admin -d omega_watches_v2 -c "
  REFRESH MATERIALIZED VIEW ref_price_summary;
  REFRESH MATERIALIZED VIEW source_health;
" >> "$LOG_FILE" 2>&1