UNPKG

log4brains

Version:

Log and publish your architecture decisions (ADR) with Log4brains

69 lines (60 loc) 2.01 kB
import chalk from 'chalk'; import { AppConsole, FailureExit } from '@log4brains/cli-common'; import { Log4brainsConfigNotFoundError } from '@log4brains/core'; import commander from 'commander'; import { createInitCli } from '@log4brains/init'; import { createCli } from '@log4brains/cli'; import { createWebCli } from '@log4brains/web'; function createGlobalCli({ appConsole, version }) { const program = new commander.Command(); program.version(version).description("Log4brains CLI to preview and build your architecture knowledge base.\n" + "You can also manage your ADRs from here (see `log4brains adr --help`).\n\n" + "All the commands should be run from your project's root folder.\n\n" + "Add the `--help` option to any command to see its detailed documentation."); const initCli = createInitCli({ appConsole }); const cli = createCli({ appConsole }); const webCli = createWebCli({ appConsole }); [...initCli.commands, ...cli.commands, ...webCli.commands].forEach(cmd => { program.addCommand(cmd); }); return program; } const debug = !!process.env.DEBUG; const dev = process.env.NODE_ENV === "development"; const appConsole = new AppConsole({ debug, traces: debug || dev }); function handleError(err) { if (appConsole.isSpinning()) { appConsole.stopSpinner(true); } if (err instanceof FailureExit) { process.exit(1); } if (err instanceof Log4brainsConfigNotFoundError) { appConsole.fatal(`Cannot find ${chalk.bold(".log4brains.yml")}`); appConsole.printlnErr(chalk.red(`You are in the wrong directory or you need to run ${chalk.cyan("log4brains init")}`)); process.exit(1); } appConsole.fatal(err); process.exit(1); } try { // eslint-disable-next-line const pkgVersion = require("../package.json").version; const cli = createGlobalCli({ version: pkgVersion, appConsole }); cli.parseAsync(process.argv).catch(handleError); } catch (e) { handleError(e); } //# sourceMappingURL=index.module.js.map