fusox
Version:
Command line wrapper for fuse-box
51 lines (44 loc) • 1.38 kB
JavaScript
const process = require('process')
const chalk = require('chalk')
const minimist = require('minimist')
const {parseCommonFlags} = require('./cli/common')
const {parseCommandFlags} = require('./cli/command')
const {versionCommand} = require('./cli/version')
const {docsCommand} = require('./cli/docs')
const {examplesCommand} = require('./cli/examples')
const {helpCommand} = require('./cli/help')
const {parseInitFlags, initCommand} = require('./cli/init')
const {parseBuildArgs, parseBuildFlags, buildCommand} = require('./cli/build')
;(() => {
let args = minimist(process.argv.slice(2))
let common = parseCommonFlags(args)
try {
let commands = parseCommandFlags(args)
if (commands.help) {
helpCommand()
} else if (commands.version) {
versionCommand()
} else if (commands.docs) {
docsCommand()
} else if (commands.examples) {
examplesCommand()
} else if (commands.init) {
initCommand(parseInitFlags(args))
} else {
let builds = parseBuildFlags(parseBuildArgs(args))
if (builds.length > 0) {
buildCommand(parseBuildFlags(parseBuildArgs(args)))
} else {
helpCommand()
}
}
} catch (err) {
if (common.trace) {
console.error(chalk.red(err.stack))
} else {
console.error(chalk.red(err.message))
}
process.exit(0)
}
})()