nhat-cli
Version:
76 lines (69 loc) • 1.67 kB
JavaScript
const path = require('path')
const fs = require('fs')
const { bold, cyan } = require('kleur');
const figlet = require("figlet");
const center = require('center-align');
const cjsBpConfig = `
module.exports = {
app: [{
name: 'app',
script: 'index.js'
}]
}
`
const esBpConfig = `
export default {
app: [{
name: 'app',
script: 'index.js'
}]
}
`
exports.command = 'init <name>'
exports.builder = {
rootDirectory: {
default: process.cwd(),
aliases: ['rootDir'],
desc: 'Set root directory of a project'
}
}
exports.describe = bold(cyan('Init config file in root directory'))
exports.handler = function (argv) {
console.log(
cyan(
center(
figlet.textSync("Blue Process", {
font: "Ghost",
horizontalLayout: "default",
verticalLayout: "default",
width: process.stdout.columns,
whitespaceBreak: true
}
), process.stdout.columns)
) + "\n\n"
)
console.log(
center(
"=".repeat(process.stdout.columns / 2),
process.stdout.columns
)
)
let projectCfg = JSON.parse(
fs.readFileSync(
path.join(argv.rootDirectory, "package.json"),
{ encoding: 'utf-8' }
)
)
console.log("projectCfg:", projectCfg)
fs.writeFile(
path.join(argv.rootDirectory, "bp.config.js"),
((!projectCfg.type || projectCfg.type === "commonjs") ? cjsBpConfig : esBpConfig),
{ encoding: 'utf-8' },
(err) => {
if (err) {
throw new Error("Something failed")
}
console.log(cyan("Successfully initialize"))
}
)
}