Node.jsでCLIが作りたくて、cacjs/cac: Simple yet powerful framework for building command-line apps.を使っていたのですが、コマンドのusageを変更する方法がドキュメントになさそうだったので、メモです。
なお、動作確認は現時点のmasterの最新コミットで行っています。
usageの変更方法
グローバルコマンドならcli.usage(text)
、サブコマンドならcommand.usage(text)
を使うと変更できます。
コードでusageの変更前後を見てみます。
usage変更前
const cli = require("cac")();
cli.command("subcommand");
cli.help();
cli.version("0.0.0");
cli.parse();
helpの表示結果
# グローバルコマンドの確認
$ node help.js -h
help.js v0.0.0
Usage:
$ help.js <command> [options]
Commands:
subcommand
For more info, run any command with the `--help` flag:
$ help.js subcommand --help
Options:
-h, --help Display this message
-v, --version Display version number
# サブコマンドの確認
$ node help.js subcommand -h
help.js v0.0.0
Usage:
$ help.js subcommand
Options:
-h, --help Display this message
-v, --version Display version number
usage変更後
const cli = require("cac")();
cli.command("subcommand").usage("SubCommand Usage");
cli.usage("GlobalCommand Usage");
cli.help();
cli.version("0.0.0");
cli.parse();
helpの表示結果
# グローバルコマンドの確認
$ node help.js -h
help.js v0.0.0
Usage:
$ help.js GlobalCommand Usage # ここが変更できている
Commands:
subcommand
For more info, run any command with the `--help` flag:
$ help.js subcommand --help
Options:
-h, --help Display this message
-v, --version Display version number
# サブコマンドの確認
$ node help.js subcommand -h
help.js v0.0.0
Usage:
$ help.js SubCommand Usage # ここが変更できている
Options:
-h, --help Display this message
-v, --version Display version number
おまけ
README.mdに書かれている方が便利だろうと思ったので、PRを出しておきました。マージされるといいなあ。