From 777fb8424fe434b8e7fa162db61b6cac632ea228 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 20 Mar 2020 11:50:19 +0100 Subject: [PATCH] Migrate from argparse to yargs --- packages/cli/src/cli.ts | 51 +++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index f8dd8095..26ade8dc 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -1,41 +1,32 @@ -import { ArgumentParser } from "argparse"; import * as fs from "fs"; import { join } from "path"; +import yargs from "yargs"; import { TsRepl } from "./tsrepl"; import colors = require("colors/safe"); export function main(originalArgs: readonly string[]): void { - const parser = new ArgumentParser({ description: "The CosmWasm REPL" }); - parser.addArgument("--version", { - action: "storeTrue", - help: "Print version and exit", - }); - parser.addArgument("--init", { - metavar: "FILEPATH", - help: "Read initial TypeScript code from file", - }); - - const maintainerGroup = parser.addArgumentGroup({ - title: "Maintainer options", - description: "Don't use those unless a maintainer tells you to.", - }); - maintainerGroup.addArgument("--selftest", { - action: "storeTrue", - help: "Run a selftext and exit", - }); - maintainerGroup.addArgument("--debug", { - action: "storeTrue", - help: "Enable debugging", - }); - const args = parser.parseArgs([...originalArgs]); - - if (args.version) { - const version = require(join(__dirname, "..", "package.json")).version; - console.info(version); - return; - } + const args = yargs + .options({ + // User options (we get --help and --version for free) + init: { + describe: "Read initial TypeScript code from file", + type: "string", + }, + // Maintainer options + debug: { + describe: "Enable debugging", + type: "boolean", + }, + selftest: { + describe: "Run a selftext and exit", + type: "boolean", + }, + }) + .group(["init", "help", "version"], "User options") + .group(["debug", "selftest"], "Maintainer options") + .parse(originalArgs); const imports = new Map([ [