Packages

c

scopt

OptionParser

abstract class OptionParser[C] extends AnyRef

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", "3.x")

  opt[Int]('f', "foo").action( (x, c) =>
    c.copy(foo = x) ).text("foo is an integer property")

  opt[File]('o', "out").required().valueName("").
    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  must be >0") ).
    keyValueName("", "").
    text("maximum count for ")

  opt[Seq[File]]('j', "jars").valueName(",...").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]("...").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
}
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OptionParser
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new OptionParser(programName: String)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. 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

  5. def arguments: Seq[OptionDef[_, C]]
    Attributes
    protected
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def checkConfig(f: (C) ⇒ Either[String, Unit]): OptionDef[Unit, C]

    adds final check.

  8. def checks: Seq[OptionDef[_, C]]
    Attributes
    protected
  9. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  10. 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

  11. def commands: Seq[OptionDef[_, C]]
    Attributes
    protected
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def errorOnUnknownArgument: Boolean
  15. def failure(msg: String): Either[String, Unit]

    call this to express failure in custom validation.

  16. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def head(xs: String*): OptionDef[Unit, C]

    adds usage text.

  20. def header: String
  21. def heads: Seq[OptionDef[_, C]]
    Attributes
    protected
  22. 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

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

  24. val helpOptions: ListBuffer[OptionDef[_, C]]
    Attributes
    protected
  25. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  26. def makeDef[A](kind: OptionDefKind, name: String)(implicit arg0: Read[A]): OptionDef[A, C]
    Attributes
    protected
  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. def nonArgs: Seq[OptionDef[_, C]]
    Attributes
    protected
  29. def note(x: String): OptionDef[Unit, C]

    adds usage text.

  30. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  31. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  32. 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

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

  34. val options: ListBuffer[OptionDef[_, C]]
    Attributes
    protected
  35. def optionsForRender: List[OptionDef[_, C]]
  36. def parse(args: Seq[String], init: C): Option[C]

    parses the given args.

  37. def parse(args: Seq[String])(implicit ev: Zero[C]): Boolean

    parses the given args.

    parses the given args.

    returns

    true if successful, false otherwise

  38. def renderOneColumnUsage: String
  39. def renderTwoColumnsUsage: String
  40. def renderUsage(mode: RenderingMode): String
  41. def renderingMode: RenderingMode
  42. def reportError(msg: String): Unit
  43. def reportWarning(msg: String): Unit
  44. def showHeader(): Unit
  45. def showTryHelp(): Unit
  46. def showUsage(): Unit
  47. def showUsageAsError(): Unit
  48. def showUsageOnError: Boolean
  49. def success: Either[String, Unit]

    call this to express success in custom validation.

  50. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  51. def terminate(exitState: Either[String, Unit]): Unit
  52. def toString(): String
    Definition Classes
    AnyRef → Any
  53. def usage: String
  54. def usageExample: String
  55. 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

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

  57. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped