Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

「commander」でオレオレヘルプをつくる

commanderは優秀なライブラリなので、自動的にヘルプを生成してくれます。
もし、これに加えて自前のヘルプ文を付け加えたい場合はヘルプオプションに無名関数の形で追記してあげるコトができます。

実際のところ

以前書いたスクリプトに、追加でヘルプ文を入れてみます。
キモはparseを一番最後に持ってくること。
これをやらないと、うまく行きません。

#!/usr/bin/env node
var args = require('commander');

args
  .option('-y --year [val]', 'broadcasted year.', (new Date()).getFullYear())
  .option('-n --noTitle','if true, output without title.')
  .option('-s --server','if true, open preview webpage.')
  .command('search [query]', 'search with optional query')

args.on('--help', function(){
  console.log(' *****************');
  console.log('  YOUR HELP MSG   ');
  console.log(' *****************');
});

args.parse(process.argv);

var YEAR    = args.year
    ,NOTITLE = args.noTitle
    ,SERVER  = args.server;

console.log(args.year);

実行結果は以下の通りです。

  Usage: sample [options] [command]


  Commands:

    search [query]  search with optional query
    help [cmd]      display help for [cmd]

  Options:

    -h, --help       output usage information
    -y --year [val]  broadcasted year.
    -n --noTitle     if true, output without title.
    -s --server      if true, open preview webpage.

 *****************
  YOUR HELP MSG   
 *****************

tj/commander.js: node.js command-line interfaces made easy