SPB Git

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 KB · 33 lines typescript
Raw Blame History
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