Nachdem ich Studiumsbedingt in der Vergangenheit mal gezwungen war, mich mit Commons CLI auseinander zu setzen, habe ich ein Gefühl dafür bekommen, wie schön es ist, eine leichtgewichtige Lösung für die Verarbeitung von Kommandozeilenargumenten zu haben. - Und wie schmerzhaft nervig es ist, wenn man so was nicht hat. ComminsCli hat damals zwar weitestgehend getan, was ich wollte, aber das Mass an Gegenwehr war mir eigentlich zu groß.
Wesentlich vielversprechender sieht dagegen GOP aus. Das ist ein Parser für Kommandozeilenargumente, der in Groovy implementiert ist.
Der Parser bringt dabei u.a. die Möglichkeit mit, optionalen Parametern einen Default Wert zu geben, Validierungsregeln in Closures zu definieren und automatisch aus den Parameterdefinitionen ein Hilfe Menü zu generieren.
Das Codebeispiel sieht auf jeden Fall ziemlich schlank und chick aus:
def parser = new org.computoring.gop.Parser(description: "An example parser.") parser.with { required 'f', 'foo-bar', [description: 'The foo-bar option'] optional 'b', [ longName: 'bar-baz', default: 'xyz', description: 'The optional bar-baz option with a default of "xyz"' ]} def params = parser.parse("-f foo_value -- some other stuff".split()) assert params.'foo-bar' == 'foo_value' assert params.b == 'xyz' assert parser.remainder.join(' ') == 'some other stuff'
[via GroovyZone]