引数解析ライブラリoptimistを使ってみたよ

http://toolbox.no.de/のPopular by dependenciesで5番目に依存されている、引数解析ライブラリのoptimistを使ってみたのです。
環境:MacOS 10.7.3 / nodebrew 0.5.0 / node 0.6.13 / npm 1.1.9

簡単に試すために

aaa.jsとか適当な名前で以下を書きます。

#!/usr/bin/env node

console.log(
  require('util').inspect(
    require('optimist').argv
  )
);

いろいろ試してみる

$ node aaa.js --aaa
{ _: [], '$0': node ./aaa.js, aaa: true }

$ node aaa.js -a
{ _: [], '$0': node ./aaa.js, a: true }

$ node aaa.js -a -a -a
{ _: [], '$0': node ./aaa.js, a: true }

$ node aaa.js -a -b -c
{ _: [], '$0': 'node ./aaa.js', a: true, b: true, c: true }

$ node aaa.js -abc
{ _: [], '$0': 'node ./aaa.js', a: true, b: true, c: true }

$ node aaa.js -abc=123
{ _: [], '$0': 'node ./aaa.js', a: true, b: true, c: '=123' }

$ node aaa.js --aaa --bbb --ccc=123 --ddd ccc
{ _: [],
  '$0': 'node ./aaa.js',
  aaa: true,
  bbb: true,
  ccc: 123,
  ddd: 'ccc' }

$ node aaa.js command dayo
{ _: [ 'command', 'dayo' ], '$0': 'node ./aaa.js' }

$ node aaa.js --aaa=123 --aaa=456 --aaa=789
{ _: [], '$0': 'node ./aaa.js', aaa: [ 123, 456, 789 ] }

$ node aaa.js -a b -c=d
{ _: [], '$0': 'node ./aaa.js', a: 'b', c: '=d' }


いい感じ。イコールが付いたときとか、数値の時とかは期待する結果がちょっと違うような気もするけど、まあなんとかなるでしょう。


追記:
console.dirがあるの忘れてた……

#!/usr/bin/env node

console.dir(
  require('optimist').argv
);