#!/usr/bin/env bun /** * scripts/generate-template-repo.ts — thin CLI over the template-repo * generator core (src/core/bootstrap/template-repo.ts) [D4]. * * Repo-only release/CI tooling — deliberately NOT wired into src/cli.ts. * Consumers: * - .github/workflows/release.yml `publish-template` job (generate → byte- * diff against the vendored templates/bootstrap/template-repo/ → push). * - scripts/check-bootstrap-templates.sh part (c): the same byte-diff, * OFFLINE, in `bun run verify` [A1]. * * Usage: * bun run scripts/generate-template-repo.ts --out [--version X.Y.Z.W] * * Prints the sorted relative file list to stdout (one per line); diagnostics * go to stderr. Exit codes: 0 ok, 1 generation failed (including "render * engine not built yet"), 2 usage error. */ import { generateTemplateTree } from '../src/core/bootstrap/template-repo.ts'; function usage(): never { console.error('usage: bun run scripts/generate-template-repo.ts --out [--version X.Y.Z.W]'); process.exit(2); } const args = process.argv.slice(2); let out = ''; let version: string | undefined; for (let i = 0; i < args.length; i++) { const a = args[i]; if (a === '--out') { out = args[++i] ?? ''; } else if (a === '--version') { version = args[++i]; } else { usage(); } } if (!out) usage(); try { const res = await generateTemplateTree(out, { version }); console.error( `generate-template-repo: wrote ${res.files.length} files to ${res.outDir} (stamp ${res.version})`, ); for (const f of res.files) console.log(f); } catch (e) { console.error(`generate-template-repo: FAILED — ${(e as Error).message}`); process.exit(1); }