1 | 'use strict';
|
2 |
|
3 | const { load } = require('@carbon/cli-runtime');
|
4 | const { logger } = require('@carbon/cli-tools');
|
5 | const program = require('commander');
|
6 | const packageJson = require('../package.json');
|
7 | const addCommandToProgram = require('./addCommandToProgram');
|
8 |
|
9 | const cwd = process.cwd();
|
10 |
|
11 | async function main({ argv }) {
|
12 | logger.trace(`Loading CLI for ${cwd}`);
|
13 |
|
14 | const { error, api, env } = await load({ cwd });
|
15 | if (error) {
|
16 | throw error;
|
17 | }
|
18 |
|
19 |
|
20 | program
|
21 | .name('toolkit')
|
22 | .version(packageJson.version)
|
23 | .usage('<command> [options]');
|
24 |
|
25 | for (const command of api.getCommands()) {
|
26 | logger.trace(`Adding command ${command.name} to program`);
|
27 | addCommandToProgram(program, command, env.CLI_ENV);
|
28 | }
|
29 |
|
30 | program.parse(argv);
|
31 | }
|
32 |
|
33 | module.exports = main;
|