#!/usr/bin/env node import { program } from "commander"; import chalk from "chalk"; import figlet from "figlet"; import { loadConfig } from "../lib/config.js"; import { handleExitError } from "../lib/utils.js"; import { runRootScript } from "../lib/runScript.js"; import { runJobsMenu } from "../lib/jobs.js"; import { runTasksMenu } from "../lib/tasks/index.js"; process.on("unhandledRejection", (err) => handleExitError(err, "Unhandled rejection")); process.on("uncaughtException", (err) => handleExitError(err, "Uncaught exception")); program .name("coryd") .description("🪄 Handle tasks, run commands or jobs, download things and have fun."); program .command("init") .description("Initialize CLI and populate required config.") .action(async () => { const { initConfig } = await import("../lib/config.js"); await initConfig(); }); program.command("run [script]").description("Run site scripts and commands.").action(runRootScript); program.command("tasks").description("Handle repeated tasks.").action(runTasksMenu); program.command("jobs").description("Trigger jobs and scripts.").action(runJobsMenu); program .command("download") .description("Download, name and store image assets.") .action(async () => { const { downloadAsset } = await import("../lib/download.js"); await downloadAsset(); }); if (process.argv.length <= 2) { const ascii = figlet.textSync("coryd.dev", { horizontalLayout: "default" }); console.log(chalk.hex("#3364ff")(ascii)); console.log(); program.outputHelp(); process.exit(0); } program.parse(process.argv);