in packages/flow-dev-tools/src/command/Base.js [183:219]
static async displayUsage(exn: ShowUsageException) {
let usage = await this.usage();
const flags = this.getAllFlags().sort((a, b) =>
a.name.localeCompare(b.name),
);
usage += '\n\nOPTIONS:';
for (const flag of flags) {
const arg =
flag.type === 'string' || flag.type === 'enum'
? ' ' + flag.argName
: '';
const values =
flag.type === 'enum'
? format(
' [%s]',
flag.validValues.map(x => format('"%s"', x)).join(', '),
)
: '';
const defaultDesc =
flag.default !== undefined
? format(' (default: "%s")', flag.default)
: '';
const names = []
.concat(flag.name, flag.aliases || [])
.map(name => (name.length == 1 ? '-' : '--') + name + arg)
.join(', ');
usage += '\n ' + names;
usage += '\n ' + flag.description + values + defaultDesc;
}
usage += '\n';
process.stderr.write(usage);
process.exit(exn.exitCode);
}