Docopt - Command-line interface description language

docopt - Command-line interface description language

Ein paar Worte dazu wären vielleicht nicht verkehrt. Die Sprachabdeckung wäre ein erstes Argument, weswegen es gegenüber Commons CLI – Home einen Vorteil haben könnte (oder auch gegenüber Chapter 21. Boost.Program_options - 1.58.0 :sick: :stuck_out_tongue: ) - Ansonsten müßte man es sich mal näher ansehen…

Ja, stimmt ein paar Worte wären angebracht. Faszinierend an docopt ist wohl die Einfachheit mit dem man ein CLI definieren kann. Man definiert nämlich das Interface über die Dokumentation des Interfaces. In so etwa wie es viele Tools schon seit längerem machen. Ein Beispiel, was zu jeder Gelegenheit erwähnt wird, ist dieses hier:

Naval Fate.

Usage:
  naval_fate ship new <name>...
  naval_fate ship <name> move <x> <y> [--speed=<kn>]
  naval_fate ship shoot <x> <y>
  naval_fate mine (set|remove) <x> <y> [--moored|--drifting]
  naval_fate -h | --help
  naval_fate --version

Options:
  -h --help     Show this screen.
  --version     Show version.
  --speed=<kn>  Speed in knots [default: 10].
  --moored      Moored (anchored) mine.
  --drifting    Drifting mine.

Hier ist nämlich auch zu sehen, dass man sich nicht mit positional Arguments herumärgern muss. Wenn man dann so eine Dokumentation den Parser übergibt, muss dann nur noch eine Map auswerten die aus ship, new, , shoot, , , speed, , mine, set, move, remove, moored und drifting besteht. Btw. Eine Java-Implementation existiert auch.

Ja, das sah schon ganz interessant aus. (Ein bißchen “gefährlich”, wenn ein Newbie, der die Funktionalität nicht kennt, dort in der vermeintlichen (!) Doku rumpfuscht

"  -h --help     Show this screen."

->

"-h or, if you want to, '-help': Show this screen, [default behavior]"
```)
aber ansonsten an Einfachheit kaum zu überbieten)

Aja, es gibt außerdem noch diese Seite, wo man docopt auch ausprobieren kann. Da kann man sich dann auch die Funktionalität anschauen, bevor man sie einsetzt. Natürlich will man Localization oder was ganz Spezielles, wird man wahrscheinlich nicht so gut bedient sein, aber für das Prototyping ist docopt auf jeden Fall einsame Spitze.