(
commands: Command[],
argv: string[],
initOptions: InitConfig,
session?: CliSession,
)
| 30 | } |
| 31 | } |
| 32 | |
| 33 | export async function runCommand( |
| 34 | commands: Command[], |
| 35 | argv: string[], |
| 36 | initOptions: InitConfig, |
| 37 | session?: CliSession, |
| 38 | ): Promise<void> { |
| 39 | const result = await parseCliInvocation(commands, argv, initOptions); |
| 40 | if (!result) { |
| 41 | return; |
| 42 | } |
| 43 | const { command, options, args } = result; |
| 44 | |
| 45 | if (options['help']) { |
| 46 | printCommandUsage(command); |
| 47 | return; |
| 48 | } |
| 49 | |
| 50 | const oneOffSession = !session; |
| 51 | session = session ?? (await init({ ...initOptions, enableConsoleLog: !!options.verbose })); |
| 52 | verifyAuthentication(command, session); |
| 53 | try { |
| 54 | await command.action({ |
| 55 | ...session, |
| 56 | args, |
| 57 | options, |
| 58 | }); |
| 59 | } finally { |
| 60 | if (oneOffSession) { |
| 61 | await session.dispose(); |
| 62 | } |
no test coverage detected