UNPKG

discord-template-generator

Version:
128 lines (97 loc) 3.93 kB
#!/usr/bin/env node const prompt = require('prompts') const fs = require('fs-extra') const colors = require('colors') const { program } = require('commander'); program.version('0.1.1'.red); async function run() { let category = await prompt({ type : "select", name : "category", message : "Pick a Category", choices : ["Javascript"] , initial: 0 }) // console.log(name.name) if(category.category === 0){ let response = {} const templates = (await fs.readdir(`${process.mainModule.path}/templates/Javascript`)).map((template) => { let info = require(`${process.mainModule.path}/templates/Javascript/${template}/template.json`); if (typeof info === "undefined") { info = require(`${process.mainModule.path}/templates/Javascript/${template}/package.json`); } info.dir = `${process.mainModule.path}/templates/Javascript/${template}`; return info; }); const questions = [{ type: "text", name: "name", initial: "project", message: "project name?", validate: value => value.length < 3 ? `Name have to be more than 3 characters` : true }]; if (templates.length > 1) { questions.push({ type: "select", name: "template", message: "Pick a template", choices: templates.map((template) => ({ title: template.name, description: template.description, value: template.dir })), initial: 0 }); } const onCancel = prompt => { return true; } response = await prompt(questions, { onCancel }); if (typeof response.template === "undefined") { response.template = templates[0].dir; } if (await fs.exists(response.name)) { // Ask if we should override const overwrite = await prompt({ type: 'confirm', name: 'value', message: 'You already have a project with that name do you want to overwrite it?', initial: false }); // Override the project if the user said yes if (overwrite.value === true) { // Remove old files await fs.remove(response.name); // Copy the template await copyTemplate(response.name, response.template); console.log('\n[+] Successfully Generated template!'.green) } } else { await copyTemplate(response.name, response.template); console.log('\n[+] Successfully Generated template!'.green) } } } async function copyTemplate(name, template) { await fs.copy(template, name, { filter: (src, dest) => { if (src.includes("template.json")) return false; return true; } }); } program .option('-g, --gen', 'generate discord bot template') .option('-h, --help', 'get help of the package!') .option('-v, --version', 'version info of the package!') program.parse(process.argv); const options = program.opts(); if (options.gen){ run(); } else if (options.help){ console.log('\nOptions:\n\n-h, --help, get help of the package!\n-v , --version, version info of the package!\n\nCommands:\n\n-g, --gen, generate discord bot template'.cyan) }else { console.log('\nOptions:\n\n-h, --help, get help of the package!\n-v , --version, version info of the package!\n\nCommands:\n\n-g, --gen, generate discord bot template'.cyan) }