gotbit-tools
Version:
GotBit development tool for js
53 lines (46 loc) • 1.3 kB
JavaScript
const { exec } = require('child_process')
const inquirer = require('inquirer')
const copyTemplate = (template, dir) => `
git clone --single-branch --branch ${template}-stable --recursive https://gitlab.bc.gotbit.io/bc/pepega-team/templates/dapp-template.git __TEMP__
mkdir ${dir}
cp -r __TEMP__/${template}/. ${dir}
rm -rf __TEMP__
`
const copyMono = (dir) => `
git clone --single-branch --branch main --recursive https://gitlab.bc.gotbit.io/bc/pepega-team/templates/dapp-monorepo.git ${dir}
rm -rf ./${dir}/.git
`
function sh(command) {
exec(command)
}
const templateList = ['frontend-vue', 'contracts', 'mono']
async function create(template, options) {
if (!template) {
const res = await inquirer.prompt([
{
name: 'template',
message: 'Name of template:',
type: 'list',
choices: templateList,
},
])
template = res.template
}
if (!options.dir) {
const res = await inquirer.prompt([
{
name: 'dir',
message: 'Write folder name:',
type: 'text',
},
])
options.dir = res.dir
}
console.log(`Creating "${template}-stable" in ${options.dir}/`)
if (template === 'mono') {
sh(copyMono(options.dir))
} else {
sh(copyTemplate(template, options.dir))
}
}
module.exports = create