scala-optparse-applicative
scala-optparse-applicative copied to clipboard
Scala port of Paolo Capriotti's optparse-applicative library. This repository is no longer maintained; newer versions exist in this fork: https://github.com/xuwei-k/optparse-applicative
scala-optparse-applicative
A port of the optparse-applicative library to the Scala programming language.
Most functionality has been ported, except completion.
This library depends on Scalaz for functional data structures, type classes and combinators.
How to get it
Version 0.7 of scala-optparse-applicative is available for Scala 2.10, 2.11 and 2.12.
resolvers += "bmjames Bintray Repo" at "https://dl.bintray.com/bmjames/maven"
libraryDependencies += "net.bmjames" %% "scala-optparse-applicative" % "0.7"
License
This library is distributed under a BSD 3-Clause license (see LICENSE
).
Simple example
This example follows the one from the [optparse-applicative] 1 docs.
case class Sample(hello: String, quiet: Boolean)
object SampleMain {
val sample: Parser[Sample] =
^(
strOption(long("hello"), metavar("TARGET"), help("Target for the greeting")),
switch(long("quiet"), help("Whether to be quiet"))
)(Sample.apply)
def greet(s: Sample): Unit = s match {
case Sample(h, false) => println("Hello, " ++ h)
case _ =>
}
def main(args: Array[String]) {
val opts = info(sample <*> helper,
progDesc("Print a greeting for TARGET"),
header("hello - a test for scala-optparse-applicative"))
greet(execParser(args, "SampleMain", opts))
}
}
When run with the --help
option, it prints:
hello - a test for scala-optparse-applicative
Usage: SampleMain --hello TARGET [--quiet]
Print a greeting for TARGET
Available options:
-h,--help Show this help text
--hello TARGET Target for the greeting
--quiet Whether to be quiet
Advanced examples
Further examples can be found in src/test/examples
.
To Do
- More tests