lilith-platform.live/codebase/@features/score-refresh/bin/refresh.ts

28 lines
909 B
TypeScript
Executable file

#!/usr/bin/env bun
/**
* Manual run entry. Reads QUINN_DB_URL from env, runs the refresh, prints
* a JSON summary, exits 0 on full success (no errors), 1 if any source
* failed (partial refresh still wrote rows for sources that succeeded).
*/
import { refreshScores } from '../src/refresh';
const dbUrl = process.env.QUINN_DB_URL ?? process.env.DATABASE_URL;
if (!dbUrl) {
console.error('score-refresh: QUINN_DB_URL (or DATABASE_URL) is required');
process.exit(2);
}
(async (): Promise<void> => {
const started = Date.now();
try {
const summary = await refreshScores(dbUrl);
const elapsed = Date.now() - started;
console.log(JSON.stringify({ ok: true, elapsed_ms: elapsed, ...summary }, null, 2));
if (Object.keys(summary.errors).length > 0) process.exit(1);
process.exit(0);
} catch (err) {
console.error('score-refresh: fatal', err);
process.exit(3);
}
})();