Re:Challenge: Implement CLI interface like that?
by halst on Sunday June 17, 2012 @08:17AM
(#4122798)
When the DSL (http://docopt.org/) was designed, the main goal was just to formalise that pattern-language used for decades in man pages and `--help` screens. So variations that are conventional (such as `UPPER-CASE` for arguments or `<angular-brackets>` for arguments) are supported.
Re:Challenge: Implement CLI interface like that?
by halst on Sunday June 17, 2012 @07:53AM
(#4122749)
docopt is even more terse than 1 line per argument/option/command.
Take an example:
Usage: quick_example.py tcp <host> <port> [--timeout=<seconds>]
quick_example.py serial <port> [--baud=9600] [--timeout=<seconds>]
quick_example.py -h | --help | --version
2 commands, 3 arguments, 5 options: in only 3 lines of DSL.Take a look at more examples: https://github.com/docopt/docopt/tree/master/examples
Using Commons-CLI in Java actually goes the opposite direction and if can be reasonably terse (one line per parameter or option) but it's also got to be wrapped in a class and have the rest of the Java boilerplate (a main method to execute, etc).
Perhaps I'll try it on my next NodeJS project.