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.
{{{
val parser = new scopt.OptionParserConfig {
head("scopt", "4.x")
set up by an (ordered) sequence of invocations of
the various builder methods such as
opt method or
arg method.
{{{
val parser = new scopt.OptionParserConfig {
head("scopt", "4.x")
optInt.action( (x, c) =>
c.copy(foo = x) ).text("foo is an integer property")
c.copy(foo = x) ).text("foo is an integer property")
optFile.required().valueName("").
action( (x, c) => c.copy(out = x) ).
text("out is a required file property")
action( (x, c) => c.copy(out = x) ).
text("out is a required file property")
opt(String, Int).action({
case ((k, v), c) => c.copy(libName = k, maxCount = v) }).
validate( x =>
if (x._2 > 0) success
else failure("Value must be >0") ).
keyValueName("", "").
text("maximum count for ")
case ((k, v), c) => c.copy(libName = k, maxCount = v) }).
validate( x =>
if (x._2 > 0) success
else failure("Value must be >0") ).
keyValueName("", "").
text("maximum count for ")
optSeq[File].valueName(",...").action( (x,c) =>
c.copy(jars = x) ).text("jars to include")
c.copy(jars = x) ).text("jars to include")
optMap[String,String].valueName("k1=v1,k2=v2...").action( (x, c) =>
c.copy(kwargs = x) ).text("other arguments")
c.copy(kwargs = x) ).text("other arguments")
optUnit.action( (_, c) =>
c.copy(verbose = true) ).text("verbose is a flag")
c.copy(verbose = true) ).text("verbose is a flag")
optUnit.hidden().action( (_, c) =>
c.copy(debug = true) ).text("this option is hidden in the usage text")
c.copy(debug = true) ).text("this option is hidden in the usage text")
help("help").text("prints this usage text")
argFile.unbounded().optional().action( (x, c) =>
c.copy(files = c.files :+ x) ).text("optional unbounded args")
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(
optUnit.abbr("nk").action( (, c) =>
c.copy(keepalive = false) ).text("disable keepalive"),
optBoolean.action( (x, c) =>
c.copy(xyz = x) ).text("xyz is a boolean property"),
optUnit.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 )
)
}
text("update is a command.").
children(
optUnit.abbr("nk").action( (, c) =>
c.copy(keepalive = false) ).text("disable keepalive"),
optBoolean.action( (x, c) =>
c.copy(xyz = x) ).text("xyz is a boolean property"),
optUnit.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
parser.parse(args, Config()) match {
case Some(config) =>
// do stuff
case None =>
// arguments are bad, error message will have been displayed
}
}}}
// arguments are bad, error message will have been displayed
}
}}}
Value members
Methods
adds an option invoked by
-x value
or --name value
.- Value Params
- name
-
name of the option
- x
-
name of the short option
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.- Value Params
- name
-
name of the option
- x
-
name of the short option
adds an option invoked by
--name
that displays header text and exits.- Value Params
- name
-
name of the option