function usage()

in packages/hub/cli.ts [496:523]


function usage(commandName: TopLevelCommandName, subCommandName?: string): string {
	const commandEntry = commands[commandName];

	let cmdArgs: readonly ArgDef[];
	let fullCommandName = commandName as string;

	if ("subcommands" in commandEntry) {
		if (subCommandName && subCommandName in commandEntry.subcommands) {
			cmdArgs = commandEntry.subcommands[subCommandName as keyof typeof commandEntry.subcommands].args;
			fullCommandName = `${commandName} ${subCommandName}`;
		} else {
			return `${commandName} <subcommand>`;
		}
	} else {
		cmdArgs = commandEntry.args;
	}

	return `${fullCommandName} ${(cmdArgs || [])
		.map((arg) => {
			if (arg.positional) {
				return arg.required ? `<${arg.name}>` : `[${arg.name}]`;
			}
			return `[--${arg.name}${arg.short ? `|-${arg.short}` : ""}${
				arg.enum ? ` {${arg.enum.join("|")}}` : arg.boolean ? "" : ` <${arg.name.toUpperCase().replace(/-/g, "_")}>`
			}]`;
		})
		.join(" ")}`.trim();
}