in packages/hub/cli.ts [525:561]
function _detailedUsage(args: readonly ArgDef[], usageLine: string, commandDescription?: string): string {
let ret = `usage: hfjs ${usageLine}\n`;
if (commandDescription) {
ret += `\n${commandDescription}\n`;
}
const positionals = args.filter((p) => p.positional);
const options = args.filter((p) => !p.positional);
if (positionals.length > 0) {
ret += `\nPositional arguments:\n`;
for (const arg of positionals) {
ret += ` ${arg.name}\t${arg.description}${
arg.default ? ` (default: ${typeof arg.default === "function" ? arg.default() : arg.default})` : ""
}\n`;
}
}
if (options.length > 0) {
ret += `\nOptions:\n`;
for (const arg of options) {
const nameAndAlias = `--${arg.name}${arg.short ? `, -${arg.short}` : ""}`;
const valueHint = arg.enum
? `{${arg.enum.join("|")}}`
: arg.boolean
? ""
: `<${arg.name.toUpperCase().replace(/-/g, "_")}>`;
ret += ` ${nameAndAlias}${valueHint ? " " + valueHint : ""}\t${arg.description}${
arg.default !== undefined
? ` (default: ${typeof arg.default === "function" ? arg.default() : arg.default})`
: ""
}\n`;
}
}
ret += `\n`;
return ret;
}