UNPKG

@lodestar/flare

Version:
48 lines (46 loc) 1.74 kB
import { registerCommandToYargs } from "@lodestar/utils"; // Must not use `* as yargs`, see https://github.com/yargs/yargs/issues/1131 import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { cmds } from "./cmds/index.js"; const topBanner = `Beacon chain multi-purpose and debugging tool. Flare is a sudden brief burst of bright flame or light. In the wrong hands, can lead people astray. Use with care. * by ChainSafe Systems, 2018-${new Date().getFullYear()}`; const bottomBanner = ` ✍️ Give feedback and report issues on GitHub: * https://github.com/ChainSafe/lodestar`; export const yarg = yargs(hideBin(process.argv)); /** * Common factory for running the CLI and running integration tests * The CLI must actually be executed in a different script */ export function getCli() { const lodestar = yarg .env("FLARE") .parserConfiguration({ // As of yargs v16.1.0 dot-notation breaks strictOptions() // Manually processing options is typesafe tho more verbose "dot-notation": false, }) // blank scriptName so that help text doesn't display the cli name before each command .scriptName("") .demandCommand(1) // Control show help behaviour below on .fail() .showHelpOnFail(false) .usage(topBanner) .epilogue(bottomBanner) .version(topBanner) .alias("h", "help") .alias("v", "version") .recommendCommands(); // yargs.command and all ./cmds for (const cmd of cmds) { registerCommandToYargs(lodestar, cmd); } // throw an error if we see an unrecognized cmd lodestar.recommendCommands().strict(); return lodestar; } //# sourceMappingURL=cli.js.map