/** * earth-now.co * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai * File: apps/ingest/src/run-source.ts * Purpose: CLI for `pnpm ingest:run ` — force one ingestion locally and print a summary */ import { KNOWN_SOURCE_IDS, runSource } from "./runners.js"; const sourceId = process.argv[2]; if (!sourceId || !KNOWN_SOURCE_IDS.includes(sourceId)) { console.error( sourceId ? `Unknown source '${sourceId}'.` : "Usage: pnpm ingest:run ", ); console.error("Known sources:"); for (const id of KNOWN_SOURCE_IDS) console.error(` - ${id}`); process.exit(1); } runSource(sourceId) .then((summary) => { console.log(`✓ ${summary.sourceId}: ${summary.observationCount} observation(s)`); if (summary.first) console.log(` first: ${summary.first.time} → ${summary.first.value}`); if (summary.last) console.log(` last: ${summary.last.time} → ${summary.last.value}`); console.log(` raw: ${summary.rawPath} (sha256 ${summary.sha256.slice(0, 12)}…)`); }) .catch((err: unknown) => { console.error(`✗ ${sourceId} ingestion failed:`, err instanceof Error ? err.message : err); process.exit(1); });