spb/earth-now Public License
earth-now.co — real-time planetary dashboard: live world metrics modeled, not streamed.
TypeScript 93%
Shell 2.3%
SQL 1.4%
JavaScript 1.3%
Dockerfile 1.2%
CSS 0.8%
1/**2 * earth-now.co3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 * File: apps/ingest/src/run-source.ts6 * Purpose: CLI for `pnpm ingest:run <sourceId>` — force one ingestion locally and print a summary7 */89import { KNOWN_SOURCE_IDS, runSource } from "./runners.js";1011const sourceId = process.argv[2];1213if (!sourceId || !KNOWN_SOURCE_IDS.includes(sourceId)) {14 console.error(15 sourceId ? `Unknown source '${sourceId}'.` : "Usage: pnpm ingest:run <sourceId>",16 );17 console.error("Known sources:");18 for (const id of KNOWN_SOURCE_IDS) console.error(` - ${id}`);19 process.exit(1);20}2122runSource(sourceId)23 .then((summary) => {24 console.log(`✓ ${summary.sourceId}: ${summary.observationCount} observation(s)`);25 if (summary.first) console.log(` first: ${summary.first.time} → ${summary.first.value}`);26 if (summary.last) console.log(` last: ${summary.last.time} → ${summary.last.value}`);27 console.log(` raw: ${summary.rawPath} (sha256 ${summary.sha256.slice(0, 12)}…)`);28 })29 .catch((err: unknown) => {30 console.error(`✗ ${sourceId} ingestion failed:`, err instanceof Error ? err.message : err);31 process.exit(1);32 });33