An instance of a command line, parsed according to a Spec.
A general mechanism for defining how a command line argument (always a String) is transformed into an arbitrary type.
A general mechanism for defining how a command line argument (always a String) is transformed into an arbitrary type. A few example instances are in the companion object, but in general either IntFromString will suffice or you'll want custom transformers.
The trait mixed into each instance of a specification.
The trait mixed into each instance of a specification.
Reference
Interpolation logic for generated files.
Interpolation logic for generated files. The idea is to be able to write in terms of @@THIS@@ and @@THAT@@ and the reference specification knows enough to perform the substitutions. Warrants expansion.
Contains logic for translating a property key/value pair into equivalent command line arguments.
Contains logic for translating a property key/value pair into equivalent command line arguments. The default settings will translate, given programInfo.runner == "foo" :
foo.bar=true to --bar // if --bar is unary foo.bar=quux to --bar quux // if --bar is binary
Mixes in the specification trait and uses the vals therein to side-effect private accumulators.
Mixes in the specification trait and uses the vals therein to side-effect private accumulators. From this emerges formatted help, lists of unary and binary arguments, an apply which can creates instances of the specification, and etc.
Instance
This trait works together with others in scala.tools.cmd to allow declaratively specifying a command line program, with many attendant benefits.
This trait works together with others in scala.tools.cmd to allow declaratively specifying a command line program, with many attendant benefits. See scala.tools.cmd.DemoSpec for an example.
A simple (overly so) command line parser.
A simple (overly so) command line parser. !!! This needs a thorough test suite to make sure quoting is done correctly and portably.
Meta-options for command line tools.
Meta-options for command line tools. We could have all kinds of additional goodness here, but for now it's completion and script generation. See Demo for example usage.
Machinery for what amounts to a command line specification DSL.
Machinery for what amounts to a command line specification DSL. It is designed so the same specification trait can be used for two different purposes: generating a singleton specification object (trait Reference) and providing well typed vals for every configurable option in response to any given set of arguments (trait Instance).