UNPKG

goofy-cookie-cli

Version:

A goofy cookie-themed CLI for fun

81 lines (68 loc) • 2.59 kB
#!/usr/bin/env node const readline = require('readline'); const { printWithEmoji, colors } = require('./utils/print'); const cookieEasterEggs = require('./commands/easterEggs'); const { handleBasicCommands } = require('./commands/basic'); const { handleCookieJarCommands } = require('./commands/cookieJar'); const { handleEvilCookieJarCommands } = require('./commands/evilCookieJar'); let currentFolder = null; const chalk = require('chalk'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, prompt: 'šŸŖ cookie > ' }); function updatePrompt() { if (currentFolder === 'cookie jar') { rl.setPrompt(chalk.magenta(`šŸŖ ${currentFolder} > `)); } else if (currentFolder === 'evil cookie jar') { rl.setPrompt(chalk.red(`šŸŖ ${currentFolder} > `)); } else { rl.setPrompt(chalk.hex('#a0522d')('šŸŖ cookie > ')); } } console.log("Welcome to Cookie CLI! Type 'cookie help' for commands."); updatePrompt(); rl.prompt(); rl.on('line', (line) => { const input = line.trim(); if (input === 'cookie ls') { printWithEmoji("šŸ“‚ cookie jar\nšŸ“‚ evil cookie jar", colors.blue); } else if (/^cookie cd\s+(.+)/.test(input)) { const folder = input.match(/^cookie cd\s+(.+)/)[1].toLowerCase(); if (folder === 'cookie jar' || folder === 'evil cookie jar') { currentFolder = folder; printWithEmoji(`šŸ“‚ Switched to folder: "${folder}"`, colors.green); updatePrompt(); } else { printWithEmoji(`āŒ Folder not found: "${folder}"`, chalk.red); } } else if (/^cookie\b/.test(input)) { // Easter eggs first if (cookieEasterEggs[input.toLowerCase()]) { const result = cookieEasterEggs[input.toLowerCase()](); printWithEmoji(result.content, result.color); rl.prompt(); return; } // Basic commands if (handleBasicCommands(input, rl)) { rl.prompt(); return; } // Folder-specific commands if (currentFolder === 'cookie jar') { handleCookieJarCommands(input); } else if (currentFolder === 'evil cookie jar') { handleEvilCookieJarCommands(input); } else { printWithEmoji("You are not inside any known cookie folder. Use 'cookie cd [folder]' to switch folders."); } } else { printWithEmoji(`Unknown command: "${input}". Try 'cookie help'.`); } rl.prompt(); }).on('close', () => { console.log(chalk.hex("#ce6e41ff").bold("šŸŖ Thanks for using Cookie CLI! cookie says byeeeee~")); process.exit(0); });