goofy-cookie-cli
Version:
A goofy cookie-themed CLI for fun
81 lines (68 loc) ⢠2.59 kB
JavaScript
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);
});