UNPKG

cli-ascii-logo

Version:

Create beautiful ASCII art logos with gradient colors for your CLI applications

87 lines (84 loc) 2.55 kB
#!/usr/bin/env node import logo, { PALETTE_NAMES } from "./Logo.js"; const args = process.argv.slice(2); function showHelp() { console.log(` Usage: cli-ascii-logo [text] [options] Examples: cli-ascii-logo "Hello World" cli-ascii-logo "Hello World" --palette sunset cli-ascii-logo "Hello World" -p cyberpunk cli-ascii-logo "Hello World" --random cli-ascii-logo --list Options: -p, --palette <name> Use a specific gradient palette (default: sunset) -r, --random Use a random gradient -l, --list List all available palettes -h, --help Show this help message Available Palettes: ${PALETTE_NAMES.join(", ")} `); } function listPalettes() { console.log("\nAvailable Gradient Palettes:\n"); PALETTE_NAMES.forEach((palette) => { console.log(logo.createLogo(palette, palette)); console.log(""); }); } function main() { if (args.length === 0 || args.includes("-h") || args.includes("--help")) { showHelp(); process.exit(0); } if (args.includes("-l") || args.includes("--list")) { listPalettes(); process.exit(0); } let text = ""; let palette; let useRandom = false; for (let i = 0; i < args.length; i++) { const arg = args[i]; if (arg === "-p" || arg === "--palette") { const nextArg = args[i + 1]; if (!nextArg) { console.error("Error: --palette requires a palette name"); process.exit(1); } if (!PALETTE_NAMES.includes(nextArg)) { console.error(`Error: Unknown palette "${nextArg}". Use --list to see available palettes.`); process.exit(1); } palette = nextArg; i++; } else if (arg === "-r" || arg === "--random") { useRandom = true; } else if (!arg.startsWith("-")) { text += (text ? " " : "") + arg; } } if (!text) { console.error("Error: No text provided"); showHelp(); process.exit(1); } try { let result; if (useRandom) { result = logo.createRandomLogo(text); } else { result = logo.createLogo(text, palette); } console.log(result); } catch (error) { console.error("Error:", error.message); process.exit(1); } } main(); //# sourceMappingURL=cli.js.map