Class

scopt

OptionParser

Related Doc: package scopt

Permalink

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)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def arg[A](name: String)(implicit arg0: Read[A]): OptionDef[A, C]

    Permalink

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

    Permalink
    Attributes
    protected
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def checkConfig(f: (C) ⇒ Either[String, Unit]): OptionDef[Unit, C]

    Permalink

    adds final check.

  8. def checks: Seq[OptionDef[_, C]]

    Permalink
    Attributes
    protected
  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def cmd(name: String): OptionDef[Unit, C]

    Permalink

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

    Permalink
    Attributes
    protected
  12. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def errorOnUnknownArgument: Boolean

    Permalink
  15. def failure(msg: String): Either[String, Unit]

    Permalink

    call this to express failure in custom validation.

  16. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  18. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  19. def head(xs: String*): OptionDef[Unit, C]

    Permalink

    adds usage text.

  20. def header: String

    Permalink
  21. def heads: Seq[OptionDef[_, C]]

    Permalink
    Attributes
    protected
  22. def help(name: String): OptionDef[Unit, C]

    Permalink

    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

  23. val helpOptions: ListBuffer[OptionDef[_, C]]

    Permalink
    Attributes
    protected
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. def makeDef[A](kind: OptionDefKind, name: String)(implicit arg0: Read[A]): OptionDef[A, C]

    Permalink
    Attributes
    protected
  26. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  27. def nonArgs: Seq[OptionDef[_, C]]

    Permalink
    Attributes
    protected
  28. def note(x: String): OptionDef[Unit, C]

    Permalink

    adds usage text.

  29. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  30. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  31. def opt[A](x: Char, name: String)(implicit arg0: Read[A]): OptionDef[A, C]

    Permalink

    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

  32. def opt[A](name: String)(implicit arg0: Read[A]): OptionDef[A, C]

    Permalink

    adds an option invoked by --name x.

    adds an option invoked by --name x.

    name

    name of the option

  33. val options: ListBuffer[OptionDef[_, C]]

    Permalink
    Attributes
    protected
  34. def optionsForRender: List[OptionDef[_, C]]

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

    Permalink

    parses the given args.

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

    Permalink

    parses the given args.

    parses the given args.

    returns

    true if successful, false otherwise

  37. def renderOneColumnUsage: String

    Permalink
  38. def renderTwoColumnsUsage: String

    Permalink
  39. def renderUsage(mode: RenderingMode): String

    Permalink
  40. def renderingMode: RenderingMode

    Permalink
  41. def reportError(msg: String): Unit

    Permalink
  42. def reportWarning(msg: String): Unit

    Permalink
  43. def showHeader(): Unit

    Permalink
  44. def showTryHelp(): Unit

    Permalink
  45. def showUsage(): Unit

    Permalink
  46. def showUsageAsError(): Unit

    Permalink
  47. def showUsageOnError: Boolean

    Permalink
  48. def success: Either[String, Unit]

    Permalink

    call this to express success in custom validation.

  49. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  50. def terminate(exitState: Either[String, Unit]): Unit

    Permalink
  51. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  52. def usage: String

    Permalink
  53. def usageExample: String

    Permalink
  54. def version(name: String): OptionDef[Unit, C]

    Permalink

    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

  55. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  57. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped