UNPKG

skyrocket-cli

Version:

Command line interface for rapid Skyrocket projects development.

102 lines (93 loc) 2.58 kB
#! /usr/bin/env node const program = require("commander"); const ora = require("ora"); const inquirer = require("inquirer"); const download = require("download-git-repo"); // const Handlebars = require('handlebars') const questions = require("../lib/workflow"); const utils = require("../lib/utils"); const generate = require("../lib/generate"); program .option("-d, --default", "use defult answer for all questions") .parse(process.argv); inquirer .prompt([ { type: "confirm", name: "isCurFolder", message: "Generate project in current directory?" } ]) .then(answer => { if (!answer.isCurFolder) { utils.warning( "Please go to the correct directory and make sure it's empty." ); process.exit(); } else { inqueryTemplate(); } }); /** * ask user to get template. */ function inqueryTemplate() { inquirer .prompt([ { type: "list", name: "backend", message: "Backend Engine: ", choices: [ { name: "Craft CMS 2 (PHP)", value: "craft2" }, { name: "Craft CMS 3 (PHP)", value: "craft3" }, { name: "Firebase (Node.js)", value: "firebase" }, { name: "Laravel (PHP)", value: "laravel" } ], default: "craft3" }, { type: "list", name: "frontent", message: "Frontend Template: ", choices: [ { name: "Craft Twig", value: "twig" }, { name: "React.js", value: "react" }, { name: "Vue.js", value: "vue" } ], default: "twig" } ]) .then(answer => { if (!["craft2", "craft3"].includes(answer.backend)) { utils.warning(answer.backend + " template will be available soon."); process.exit(); } else if (answer.frontent !== "twig") { utils.warning( `${answer.backend} + ${answer.frontent} will be available soon.` ); process.exit(); } else { const template = answer.backend + "-" + answer.frontent; downloadAndGenerate(template); } }); } /** * Download & generate from a template repo. * * @param {String} template e.g. craft+twig */ function downloadAndGenerate(template) { const spinner = ora("downloading template"); spinner.start(); const craftTwig = "gitlab:Skyrkt/Code-System/template-" + template; download(craftTwig, ".", err => { if (err) { utils.warning(err); } else { spinner.succeed("Template downloaded."); generate(questions.init_flow, process.cwd()); } }); }