abstract class OptionParser[C] extends OptionDefCallback[C]
scopt.immutable.OptionParser
is instantiated within your object,
set up by an (ordered) sequence of invocations of
the various builder methods such as
opt
method or
arg
method.
val parser = new scopt.OptionParser[Config]("scopt") { head("scopt", "4.x") opt[Int]('f', "foo").action( (x, c) => c.copy(foo = x) ).text("foo is an integer property") opt[File]('o', "out").required().valueName("<file>"). action( (x, c) => c.copy(out = x) ). text("out is a required file property") opt[(String, Int)]("max").action({ case ((k, v), c) => c.copy(libName = k, maxCount = v) }). validate( x => if (x._2 > 0) success else failure("Value <max> must be >0") ). keyValueName("<libname>", "<max>"). text("maximum count for <libname>") opt[Seq[File]]('j', "jars").valueName("<jar1>,<jar2>...").action( (x,c) => c.copy(jars = x) ).text("jars to include") opt[Map[String,String]]("kwargs").valueName("k1=v1,k2=v2...").action( (x, c) => c.copy(kwargs = x) ).text("other arguments") opt[Unit]("verbose").action( (_, c) => c.copy(verbose = true) ).text("verbose is a flag") opt[Unit]("debug").hidden().action( (_, c) => c.copy(debug = true) ).text("this option is hidden in the usage text") help("help").text("prints this usage text") arg[File]("<file>...").unbounded().optional().action( (x, c) => c.copy(files = c.files :+ x) ).text("optional unbounded args") note("some notes.".newline) cmd("update").action( (_, c) => c.copy(mode = "update") ). text("update is a command."). children( opt[Unit]("not-keepalive").abbr("nk").action( (_, c) => c.copy(keepalive = false) ).text("disable keepalive"), opt[Boolean]("xyz").action( (x, c) => c.copy(xyz = x) ).text("xyz is a boolean property"), opt[Unit]("debug-update").hidden().action( (_, c) => c.copy(debug = true) ).text("this option is hidden in the usage text"), checkConfig( c => if (c.keepalive && c.xyz) failure("xyz cannot keep alive") else success ) ) } // parser.parse returns Option[C] parser.parse(args, Config()) match { case Some(config) => // do stuff case None => // arguments are bad, error message will have been displayed }
- Self Type
- OptionParser[C]
- Alphabetic
- By Inheritance
- OptionParser
- OptionDefCallback
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new OptionParser(programName: String)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def arg[A](name: String)(implicit arg0: Read[A]): OptionDef[A, C]
adds an argument invoked by an option without
-
or--
.adds an argument invoked by an option without
-
or--
.- name
name in the usage text
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def checkConfig(f: (C) => Either[String, Unit]): OptionDef[Unit, C]
adds final check.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def cmd(name: String): OptionDef[Unit, C]
adds a command invoked by an option without
-
or--
.adds a command invoked by an option without
-
or--
.- name
name of the command
- def displayToErr(msg: String): Unit
- def displayToOut(msg: String): Unit
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def errorOnUnknownArgument: Boolean
- def failure(msg: String): Either[String, Unit]
call this to express failure in custom validation.
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def head(xs: String*): OptionDef[Unit, C]
adds usage text.
- def header: String
- def help(x: Char, name: String): OptionDef[Unit, C]
adds an option invoked by
-x
or--name
that displays usage text and exits.adds an option invoked by
-x
or--name
that displays usage text and exits.- x
name of the short option
- name
name of the option
- def help(name: String): OptionDef[Unit, C]
adds an option invoked by
--name
that displays usage text and exits.adds an option invoked by
--name
that displays usage text and exits.- name
name of the option
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def makeDef[A](kind: OptionDefKind, name: String)(implicit arg0: Read[A]): OptionDef[A, C]
- Attributes
- protected
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def note(x: String): OptionDef[Unit, C]
adds usage text.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def opt[A](x: Char, name: String)(implicit arg0: Read[A]): OptionDef[A, C]
adds an option invoked by
-x value
or--name value
.adds an option invoked by
-x value
or--name value
.- x
name of the short option
- name
name of the option
- def opt[A](name: String)(implicit arg0: Read[A]): OptionDef[A, C]
adds an option invoked by
--name x
.adds an option invoked by
--name x
.- name
name of the option
- val options: ListBuffer[OptionDef[_, C]]
- Attributes
- protected
- def parse(args: Seq[String], init: C): Option[C]
parses the given
args
. - def renderingMode: RenderingMode
- def reportError(msg: String): Unit
- def reportWarning(msg: String): Unit
- def showUsageOnError: Option[Boolean]
- def success: Either[String, Unit]
call this to express success in custom validation.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def terminate(exitState: Either[String, Unit]): Unit
- def toString(): String
- Definition Classes
- AnyRef → Any
- def usage: String
- def version(x: Char, name: String): OptionDef[Unit, C]
adds an option invoked by
-x
or--name
that displays header text and exits.adds an option invoked by
-x
or--name
that displays header text and exits.- x
name of the short option
- name
name of the option
- def version(name: String): OptionDef[Unit, C]
adds an option invoked by
--name
that displays header text and exits.adds an option invoked by
--name
that displays header text and exits.- name
name of the option
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()