#!/usr/bin/env node import { existsSync, readFileSync } from "node:fs"; import { resolve } from "node:path"; import { Command } from "commander"; import { renderCommand } from "./commands/render.js"; import { previewCommand } from "./commands/preview.js"; import { templatesCommand } from "./commands/templates.js"; import { voicesCommand } from "./commands/voices.js"; import { initCommand } from "./commands/init.js"; import { collectCommand } from "./commands/collect.js"; // Auto-load .env from monorepo root (3 levels up from dist/index.js) const envPath = resolve(import.meta.dirname, "../../../.env"); if (existsSync(envPath)) { const content = readFileSync(envPath, "utf-8"); for (const line of content.split("\n")) { const trimmed = line.trim(); if (!trimmed || trimmed.startsWith("#")) continue; const eq = trimmed.indexOf("="); if (eq < 0) continue; const key = trimmed.slice(0, eq).trim(); const val = trimmed.slice(eq + 1).trim(); if (!process.env[key]) { process.env[key] = val; } } } const program = new Command(); program .name("pipeline") .description("Text-to-video generation pipeline") .version("0.0.1"); program.addCommand(renderCommand); program.addCommand(collectCommand); program.addCommand(previewCommand); program.addCommand(templatesCommand); program.addCommand(voicesCommand); program.addCommand(initCommand); program.parse();