OptionParser

replpp.shaded.scopt.OptionParser
abstract class OptionParser[C](programName: String) 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
}

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def arg[A : Read](name: String): OptionDef[A, C]

adds an argument invoked by an option without - or --.

adds an argument invoked by an option without - or --.

Value parameters

name

name in the usage text

Attributes

def checkConfig(f: C => Either[String, Unit]): OptionDef[Unit, C]

adds final check.

adds final check.

Attributes

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 --.

Value parameters

name

name of the command

Attributes

def displayToErr(msg: String): Unit
def displayToOut(msg: String): Unit
def errorOnUnknownArgument: Boolean
def failure(msg: String): Either[String, Unit]

call this to express failure in custom validation.

call this to express failure in custom validation.

Attributes

def head(xs: String*): OptionDef[Unit, C]

adds usage text.

adds usage text.

Attributes

def header: String
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.

Value parameters

name

name of the option

Attributes

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.

Value parameters

name

name of the option

x

name of the short option

Attributes

protected def makeDef[A : Read](kind: OptionDefKind, name: String): OptionDef[A, C]
def note(x: String): OptionDef[Unit, C]

adds usage text.

adds usage text.

Attributes

def opt[A : Read](name: String): OptionDef[A, C]

adds an option invoked by --name x.

adds an option invoked by --name x.

Value parameters

name

name of the option

Attributes

def opt[A : Read](x: Char, name: String): OptionDef[A, C]

adds an option invoked by -x value or --name value.

adds an option invoked by -x value or --name value.

Value parameters

name

name of the option

x

name of the short option

Attributes

def parse(args: Seq[String], init: C): Option[C]

parses the given args.

parses the given args.

Attributes

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.

call this to express success in custom validation.

Attributes

def terminate(exitState: Either[String, Unit]): Unit
def usage: String
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.

Value parameters

name

name of the option

Attributes

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.

Value parameters

name

name of the option

x

name of the short option

Attributes

Concrete fields

protected val options: ListBuffer[OptionDef[_, C]]