Am 15.06.2014 19:35, schrieb Bob Tolbert:
In order to learn D, I've worked up a port of the docopt
commandline parser (original in Python http://docopt.org).
https://github.com/rwtolbert/docopt.d
Since this is my first code in D, I apologize in advance for the
mix if Python and C++ idioms. Since this is ported from Python,
with the intention of staying compatible with future Python
versions, some of that is expected, but I look for this as an
chance to learn more about D.
It is also a pretty useful way to write commandline interfaces.
The included example that mimics the git CLI is pretty impressive.
This is also my first submission as a dub project, so hopefully I
got that right as well.
Still needs more tests ported from Python, but it does pass the
entire functional test suite for the current Python version.
Regards,
Bob
That's a really nice approach. Makes me wonder if there is a generic
bash completion script for this kind of help screen format(?).
One thing that would be nice is support for multiple help screens (e.g.
one per command). For DUB [1] (or GIT) for example there is one main
help screen that lists all commands along with common options and then
one help screen per command that lists the individual arguments, options
and a summary of what the command does. But maybe for such more complex
CLIs it starts to be more efficient to use a programmatic approach.
For a statically typed language like D it would also be interesting to
investigate the possibility to encode and validate the type of each
option or positional argument instead of using a generic string type.
[1]: http://code.dlang.org/