楽しいだけで十分です

cacjs/cacで、コマンドのusageを変更する方法

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を出しておきました。マージされるといいなあ。

docs: add usage api by yinm · Pull Request #93 · cacjs/cac

yinm

WRITTEN BY yinm

I'm a Frontend Engineer.