log4brains
Version:
Log and publish your architecture decisions (ADR) with Log4brains
69 lines (60 loc) • 2.01 kB
JavaScript
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