UNPKG

@ton-actions/tondev-contest

Version:

TON Dev Environment

85 lines 3.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.printUsage = void 0; const core_1 = require("../core"); const utils_1 = require("../core/utils"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const controllers_1 = require("../controllers"); async function printCommandUsage(controller, command) { var _a, _b; let usageArgs = ""; const options = []; const args = []; for (const arg of (_a = command.args) !== null && _a !== void 0 ? _a : []) { if (arg.isArg) { usageArgs += ` ${arg.name}`; args.push(arg); } else { options.push(arg); } } if (options.length > 0) { usageArgs += ` [options]`; } console.log(`Use: tondev ${controller.name} ${command.name}${usageArgs}`); if (args.length > 0) { console.log("Args:"); console.log(utils_1.formatTable(args.map(x => [" ", x.name, x.title]))); } console.log("Options:"); const optionsTable = [[" ", "--help, -h", "Show command usage"]]; for (const option of options) { optionsTable.push([ " ", core_1.nameInfo(option, "--", "-"), (_b = option.title) !== null && _b !== void 0 ? _b : "", ]); if (option.description) { utils_1.breakWords(option.description, 60).split("\n").forEach((line) => { optionsTable.push(["", "", line]); }); } const variants = await core_1.getArgVariants(option); if (variants) { optionsTable.push(["", "", "Variants:"]); utils_1.formatTable(variants.map(x => [x.value, x.description])).split("\n").forEach(line => { optionsTable.push(["", "", line]); }); } } console.log(utils_1.formatTable(optionsTable)); } function printControllerUsage(controller) { console.log(utils_1.formatTable(controller.commands.map(x => [" ", core_1.nameInfo(x), x.title]))); } async function printUsage(controller, command) { var _a, _b; const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(__dirname, "..", "..", "package.json"), "utf8")); console.log(`TONDev Version: ${pkg.version}`); if (controller && command) { await printCommandUsage(controller, command); return; } console.log(`Use: tondev ${(_a = controller === null || controller === void 0 ? void 0 : controller.name) !== null && _a !== void 0 ? _a : "tool"} ${(_b = command === null || command === void 0 ? void 0 : command.name) !== null && _b !== void 0 ? _b : "command"} args [options]`); console.log(`Options:`); console.log(` --help, -h Show command usage`); if (controller) { console.log("Commands:"); printControllerUsage(controller); return; } console.log("Tools:"); const rows = []; controllers_1.controllers.forEach((controller) => { var _a; rows.push([" ", core_1.nameInfo(controller), (_a = controller.title) !== null && _a !== void 0 ? _a : ""]); }); console.log(utils_1.formatTable(rows)); } exports.printUsage = printUsage; //# sourceMappingURL=help.js.map