OptionParser
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.
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
}
Value members
Concrete methods
adds an argument invoked by an option without -
or --
.
adds an argument invoked by an option without -
or --
.
- Value Params
- name
name in the usage text
adds a command invoked by an option without -
or --
.
adds a command invoked by an option without -
or --
.
- Value Params
- name
name of the command
call this to express failure in custom validation.
call this to express failure in custom validation.
adds an option invoked by --name
that displays usage text and exits.
adds an option invoked by --name
that displays usage text and exits.
- Value Params
- name
name of the option
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.
- Value Params
- name
name of the option
- x
name of the short option
adds an option invoked by --name x
.
adds an option invoked by --name x
.
- Value Params
- name
name of the option
adds an option invoked by -x value
or --name value
.
adds an option invoked by -x value
or --name value
.
- Value Params
- name
name of the option
- x
name of the short option
call this to express success in custom validation.
call this to express success in custom validation.