From c0b245067b8b3ee21bc5371e232a61fbccb15640 Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Wed, 14 Aug 2019 09:16:20 +0700 Subject: [PATCH] Use path.relative when printing argparse cmd --- packages/argparse/src/argparse.ts | 4 +++- packages/scripts/src/index.ts | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/argparse/src/argparse.ts b/packages/argparse/src/argparse.ts index 02d473e..a73a147 100644 --- a/packages/argparse/src/argparse.ts +++ b/packages/argparse/src/argparse.ts @@ -1,3 +1,5 @@ +import {relative} from 'path' + export type TArgTypeName = 'string' | 'string[]' | 'number' | 'boolean' export type TArgType = T extends 'string' @@ -183,7 +185,7 @@ export function help(command: string, config: IArgsConfig) { } const positionalHelp = [ - command, + relative(process.cwd(), command), '[OPTIONS]', keys .filter(k => config[k].positional) diff --git a/packages/scripts/src/index.ts b/packages/scripts/src/index.ts index 9e1f199..d21fdb9 100644 --- a/packages/scripts/src/index.ts +++ b/packages/scripts/src/index.ts @@ -7,20 +7,20 @@ import {argparse, arg} from '@rondo/argparse' const {parse} = argparse({ help: arg('boolean'), debug: arg('boolean'), - command: arg('string', {required: true, positional: true}), - other: arg('string[]', {n: '*', positional: true}), + command: arg('string[]', {n: '+', required: true, positional: true}), }) type TArgs = ReturnType async function run(args: TArgs) { - if (!(args.command in commands)) { + const commandName = args.command[0] + if (!(commandName in commands)) { const c = Object.keys(commands).filter(cmd => !cmd.startsWith('_')) log.info(`Available commands:\n\n${c.join('\n')}`) return } - const command = (commands as any)[args.command] as TCommand - await command(args.command, ...args.other) + const command = (commands as any)[commandName] as TCommand + await command(...args.command) } if (typeof require !== 'undefined' && require.main === module) {