UNPKG

f-cli

Version:

A simple CLI for creating your projects

58 lines (52 loc) 1.42 kB
const { prompt } = require('inquirer') const { writeFile } = require('fs') const { listTable } = require(`${__dirname}/../utils`) const { resolve } = require('path') const chalk = require('chalk') const download = require('download-git-repo') const ora = require('ora') let tplList = require(`${__dirname}/../templates`) let choices = Object.keys(tplList) const question = [ { type: 'list', name: 'name', message: 'Template name:', choices: choices }, { type: 'input', name: 'project', message: 'Project name:', validate (val) { if (val !== '') { return true } return 'Project name is required!' } }, { type: 'input', name: 'place', message: 'Where to init the project:', default: './' } ] module.exports = prompt(question).then(({ name, project, place }) => { const gitPlace = tplList[name]['owner/name'] const gitBranch = tplList[name]['branch'] const spinner = ora('Downloading template...') spinner.start() download(`${gitPlace}#${gitBranch}`, `${place}/${project}`, (err) => { if (err) { console.log(chalk.red(err)) process.exit() } spinner.stop() console.log(chalk.green('New project has been initialized successfully!\n')) console.log('To get started:\n') console.log(' cd %s', project) console.log(' npm i | yarn i') console.log(' npm run dev') }) })