diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-11-27 17:59:51 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-11-27 17:59:57 +0100 |
commit | c3ca556affe2f514aeb7fd052fe6d626d9319e99 (patch) | |
tree | ffd85c479b3201c6372d380bb0a2819af503539c /src/headless/clk.ts | |
parent | d42b9e3df8d1bf0e2d0805a04663a79b22a2545d (diff) | |
download | wallet-core-c3ca556affe2f514aeb7fd052fe6d626d9319e99.tar.xz |
JS-only crypto (only primitives so far)
Diffstat (limited to 'src/headless/clk.ts')
-rw-r--r-- | src/headless/clk.ts | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/headless/clk.ts b/src/headless/clk.ts index 51ee119c9..4a568dc18 100644 --- a/src/headless/clk.ts +++ b/src/headless/clk.ts @@ -329,6 +329,7 @@ export class CommandGroup<GN extends keyof any, TG> { let foundSubcommand: CommandGroup<any, any> | undefined = undefined; const myArgs: any = (parsedArgs[this.argKey] = {}); const foundOptions: { [name: string]: boolean } = {}; + const currentName = this.name ?? progname; for (i = 0; i < unparsedArgs.length; i++) { const argVal = unparsedArgs[i]; if (argsTerminated == false) { @@ -341,8 +342,7 @@ export class CommandGroup<GN extends keyof any, TG> { const r = splitOpt(opt); const d = this.longOptions[r.key]; if (!d) { - const n = this.name ?? progname; - console.error(`error: unknown option '--${r.key}' for ${n}`); + console.error(`error: unknown option '--${r.key}' for ${currentName}`); process.exit(-1); throw Error("not reached"); } @@ -412,8 +412,7 @@ export class CommandGroup<GN extends keyof any, TG> { } else { const d = this.arguments[posArgIndex]; if (!d) { - const n = this.name ?? progname; - console.error(`error: too many arguments for ${n}`); + console.error(`error: too many arguments for ${currentName}`); process.exit(-1); throw Error("not reached"); } @@ -424,12 +423,11 @@ export class CommandGroup<GN extends keyof any, TG> { for (let i = posArgIndex; i < this.arguments.length; i++) { const d = this.arguments[i]; - const n = this.name ?? progname; if (d.required) { if (d.args.default !== undefined) { myArgs[d.name] = d.args.default; } else { - console.error(`error: missing positional argument '${d.name}' for ${n}`); + console.error(`error: missing positional argument '${d.name}' for ${currentName}`); process.exit(-1); throw Error("not reached"); } @@ -465,7 +463,19 @@ export class CommandGroup<GN extends keyof any, TG> { parsedArgs, ); } else if (this.myAction) { - this.myAction(parsedArgs); + let r; + try { + r = this.myAction(parsedArgs); + } catch (e) { + console.error(`An error occured while running ${currentName}`); + console.error(e); + process.exit(1); + } + Promise.resolve(r).catch((e) => { + console.error(`An error occured while running ${currentName}`); + console.error(e); + process.exit(1); + }); } else { this.printHelp(progname, parents); process.exit(-1); |