diff --git a/package-lock.json b/package-lock.json index 136d7d4..56058cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "luxon": "1.26.0", "node-fetch": "2.6.1", "shelljs": "0.8.4", - "yargs": "16.2.0" + "yargs": "17.0.1" }, "bin": { "perp": "build/src/cli/index.js" @@ -33,7 +33,7 @@ "@types/node": "14.14.41", "@types/node-fetch": "2.5.10", "@types/shelljs": "0.8.8", - "@types/yargs": "16.0.1", + "@types/yargs": "17.0.0", "chai": "4.3.4", "mocha": "8.3.2", "nyc": "15.1.0", @@ -878,9 +878,9 @@ } }, "node_modules/@types/yargs": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.1.tgz", - "integrity": "sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.0.tgz", + "integrity": "sha512-RS7u2X7vdXjVQs160PWY1pjLBw6GJj04utojn0KU8p2rRZR37FSzzK6XOT+KLzT/DVbDYRyezroc0LHIvM5Z2A==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -2343,6 +2343,24 @@ "node": ">=10" } }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/yargs-parser": { "version": "20.2.4", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", @@ -3353,9 +3371,9 @@ } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -3366,7 +3384,7 @@ "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { @@ -4235,9 +4253,9 @@ } }, "@types/yargs": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.1.tgz", - "integrity": "sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.0.tgz", + "integrity": "sha512-RS7u2X7vdXjVQs160PWY1pjLBw6GJj04utojn0KU8p2rRZR37FSzzK6XOT+KLzT/DVbDYRyezroc0LHIvM5Z2A==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -5401,6 +5419,21 @@ "has-flag": "^4.0.0" } }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, "yargs-parser": { "version": "20.2.4", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", @@ -6196,9 +6229,9 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", diff --git a/package.json b/package.json index 6cb955e..f30618e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@perp/cli", - "version": "0.1.0", + "version": "0.2.0", "description": "CLI for Perpetual Protocol", "main": "build/src/index.js", "module": "build/src/index.js", @@ -29,7 +29,7 @@ "@types/node": "14.14.41", "@types/node-fetch": "2.5.10", "@types/shelljs": "0.8.8", - "@types/yargs": "16.0.1", + "@types/yargs": "17.0.0", "chai": "4.3.4", "mocha": "8.3.2", "nyc": "15.1.0", @@ -47,6 +47,6 @@ "luxon": "1.26.0", "node-fetch": "2.6.1", "shelljs": "0.8.4", - "yargs": "16.2.0" + "yargs": "17.0.1" } } diff --git a/src/cli/index.ts b/src/cli/index.ts index 11c28fb..338a6a2 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -2,7 +2,14 @@ import { runner } from "./runner" import { hideBin } from "yargs/helpers" +import { Arguments } from "yargs" -runner() - .onFinishCommand(() => process.exit(0)) - .parse(hideBin(process.argv)) +runner().parseAsync( + hideBin(process.argv), + (err: Error | undefined, argv: Arguments | Promise, output: string) => { + if (err || output) { + console.log(output) + } + process.exit(0) + }, +) diff --git a/src/cli/middeware.ts b/src/cli/middeware.ts index 51660d0..53f5a0d 100644 --- a/src/cli/middeware.ts +++ b/src/cli/middeware.ts @@ -63,11 +63,11 @@ export class BaseLogger { } } -class BotLogger extends BaseLogger { +export class BotLogger extends BaseLogger { // NOTE: add any customization for BotLogger here private bufferedStr: string = '' - log = (str: string) => { + log = (str: string = '') => { // NOTE: use empty string as the termination character to send message if (str !== '') { this.bufferedStr += `${str}\n` @@ -78,6 +78,10 @@ class BotLogger extends BaseLogger { this.bufferedStr = '' } } + + logLine = (str: string = '') => { + this._logFn(str) + } } class CommandlineLogger extends BaseLogger { diff --git a/src/cli/runner.ts b/src/cli/runner.ts index da0b78c..bccfdbf 100644 --- a/src/cli/runner.ts +++ b/src/cli/runner.ts @@ -1,12 +1,10 @@ -import yargs, { CommandModule } from "yargs" +import yargs from "yargs" import positionHistory from "../command/position" import ammStatus from "../command/amm" import portfolio from "../command/portfolio" import verifyCommand from "../command/verify" import sendTx from "../command/exec" -import { getStageName } from "../util/stage" -import { fetchConfiguration } from "../util/metadata" -import { BaseLogger, LoggerMiddleware } from "./middeware" +import { LoggerMiddleware } from "./middeware" const SCRIPT_NAME = "perp" diff --git a/src/command/amm.ts b/src/command/amm.ts index 0ebe2bf..24325ca 100644 --- a/src/command/amm.ts +++ b/src/command/amm.ts @@ -121,7 +121,9 @@ const ammCommand: CommandModule = { break } } - log("") + if (flagShortList) { + log("") + } }, } diff --git a/src/index.ts b/src/index.ts index 7db2cf8..0a8e879 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ export * from './cli/runner' +export { BaseLogger, BotLogger } from './cli/middeware'