tav:Brain-free command-line options parser
tav는 나같은 무뇌아에게 딱 맞는 파서다. 좀더 고급형 cli parser도 많지만 아 뇌가 없어서 힘들다.
tav
다음과 같이 대충 만들고:
#!/usr/bin/env node
var opts = require('tav').set();
console.log(opts, opts.args);
라고 만들고 나서 대충 실행하면:
#!/usr/bin/env bash
$node app.js --host=localhost --port=8080 --debug arg1 arg2
{ host: 'localhost', port: 8080, debug: true } [ 'arg1', 'arg2' ]
된다.
규칙도 정의할 수 있는데 다음과 같이 만들고:
#!/usr/bin/env node
var opts = require('tav').set({
//value가 없기 때문에 host는 required 옵션이다.
host: {
note: 'Hostname'
},
//value가 있기 때문에 port는 optional 옵션이다.
port: {
note: 'Binding port',
value: 80
},
debug : {
note : 'Debug this',
value : false
}
//여기에 정의되지 않는 정의하지 않은 옵션은 unexpected이다.
}, "Very cool app");
console.log(opts);
정의한대로 usage를 자동으로 구성해준다. --help
옵션을 주면 전체 볼 수 있다. --help
가 없으면 그때그때 필요한 것만 보여준다.
$node app.js --host=localhost --debug arg1 arg2 --help
Very cool app
Hostname
--host *required
Binding port
--port
Debug this
--debug
Help. This message.
--help
옵션의 속성으로 Required
, Unexpected
, Optional
가 있다.
- Required: 꼭 입력해야 하는 옵션입니다.
- Unexpected: 넣으면 안돼는 것입니다.
- Optional: 생략 가능한 것입니다.
나이스한 컨벤션을 이용해서 정말 간단하게 구현했다. tav는 페니키아어로 mark, sign이라는 뜻이다. 에로틱한 이름이 어울릴 것 같은데 수학적이다.--;