com.frugalmechanic.optparse

OptParse

trait OptParse extends OptParseImplicits with OptParseTypes

Simple Command Line Parsing for Scala

OptParse provides simple command line parsing for Scala that only requires a minimal amount of code.

Hello World Example

import com.frugalmechanic.optparse._

object SimpleApp extends OptParse {
  val name = StrOpt()

  def main(args: Array[String]) {
    parse(args)
    println("Hello "+name.getOrElse("world"))
  }
}

And then you can pass options with:

./simpleApp --name World

or

./simpleApp -n World

More Complete Example

import com.frugalmechanic.optparse._

object MyApp extends OptParse {
  // --flag (-f is ambiguous since it overlaps with file)
  val flag = BoolOpt()

  // --name (-n is ambiguous since it overlaps with number)
  val name = StrOpt()

  // Can be called multiple times with --aliases or -a (e.g.: --aliases Foo --aliases Bar OR -a Foo -a Bar)
  val aliases = MultiStrOpt()

  // --number (-n is ambiguous since it overlaps with name)
  val number = IntOpt()

  // --file (-f is ambiguous since it overlaps with flag)
  val file = FileOpt()

  def main(args: Array[String]) {
    // Parse the command line arguments
    parse(args)

    // Implicit conversion to bool
    if(flag) println("flag was set!")

    // Implicit conversion to bool to check if a value is set
    if(name) println("Name: "+name.get)

    if(aliases) println("Your alias(es) are: "+aliases.getOrElse(Nil))

    if(number) println("Your number is: "+number.get)

    if(file) println("Your file is: "+file.get)
  }

}
Show help message
./myApp --help

or

./myApp -h
Pass in some options
./myApp --flag --name Tim --aliases Timothy --aliases Timmy --number 123

Nested Options Object Example

You can also use a nested options object (or class) for parsing the options:

import com.frugalmechanic.optparse._

object MyApp2 {
  object options extends OptParse {
     val flag = BoolOpt()
  }

  def main(args: Array[String]) {
    options.parse(args)

    if(options.flag) println("flag is set")
  }
}

Command Line Option Types

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. OptParse
  2. OptParseTypes
  3. OptParseImplicits
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. type ArgOpt[T] = optparse.ArgOpt[T]

    Definition Classes
    OptParseTypes
  2. type BoolOpt = optparse.BoolOpt

    Definition Classes
    OptParseTypes
  3. type FileOpt = optparse.FileOpt

    Definition Classes
    OptParseTypes
  4. type IntOpt = optparse.IntOpt

    Definition Classes
    OptParseTypes
  5. type MultiOpt[T] = optparse.MultiOpt[T]

    Definition Classes
    OptParseTypes
  6. type MultiStrOpt = optparse.MultiStrOpt

    Definition Classes
    OptParseTypes
  7. type Opt = optparse.Opt

    Definition Classes
    OptParseTypes
  8. type OptParse = optparse.OptParse

    Definition Classes
    OptParseTypes
  9. type OptVal[T] = optparse.OptVal[T]

    Definition Classes
    OptParseTypes
  10. type SingleOpt[T] = optparse.SingleOpt[T]

    Definition Classes
    OptParseTypes
  11. type StrOpt = optparse.StrOpt

    Definition Classes
    OptParseTypes

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. val BoolOpt: optparse.BoolOpt.type

    Definition Classes
    OptParseTypes
  7. implicit def BoolOptToBool(opt: optparse.BoolOpt): Boolean

    Allows "if(MyFlag) .

    Allows "if(MyFlag) ..."

    Definition Classes
    OptParseImplicits
  8. val FileOpt: optparse.FileOpt.type

    Definition Classes
    OptParseTypes
  9. val IntOpt: optparse.IntOpt.type

    Definition Classes
    OptParseTypes
  10. val MultiStrOpt: optparse.MultiStrOpt.type

    Definition Classes
    OptParseTypes
  11. implicit def OptToBool[T](opt: optparse.OptVal[T]): Boolean

    Allows: if(NameOpt) .

    Allows: if(NameOpt) ... instead of if(NameOpt.value.isDefined) ...

    Definition Classes
    OptParseImplicits
  12. implicit def OptToSeq[T](opt: optparse.Opt): Seq[optparse.Opt]

    Allows BoolOpt(enables=MyOpt) instead of BoolOpt(enables=Seq(MyOpt))

    Allows BoolOpt(enables=MyOpt) instead of BoolOpt(enables=Seq(MyOpt))

    Definition Classes
    OptParseImplicits
  13. implicit def OptValToOption[T](opt: optparse.OptVal[T]): Option[T]

    Allows any Option methods to be used on an OptVal

    Allows any Option methods to be used on an OptVal

    Definition Classes
    OptParseImplicits
  14. val StrOpt: optparse.StrOpt.type

    Definition Classes
    OptParseTypes
  15. implicit def StringToValidateRegex(regex: Regex): (String) ⇒ Boolean

    Allows regex usage for the validate option: validate="^[a-zA-Z]+$"

    Allows regex usage for the validate option: validate="^[a-zA-Z]+$"

    Definition Classes
    OptParseImplicits
  16. implicit def ValToOption[T](value: T): Option[T]

    Allows longName="name" without needing long=Some("name")

    Allows longName="name" without needing long=Some("name")

    Definition Classes
    OptParseImplicits
  17. val allOpts: ListBuffer[Opt]

    Attributes
    protected
  18. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  19. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  20. def defaultOpt[T](arg: ArgOpt[T]): ArgOpt[T]

    Declare a "default option"

  21. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  23. def error(msg: String): Unit

    Exit the application with a message

    Exit the application with a message

    Attributes
    protected
  24. def exit(msg: String = null, status: Int = 1): Nothing

    Attributes
    protected
  25. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  26. val foundOpts: ListBuffer[Opt]

    Attributes
    protected
  27. final def getClass(): Class[_]

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

    Definition Classes
    AnyRef → Any
  29. def help: Unit

    Print the help message to STDERR

  30. val helpOpt: optparse.BoolOpt

    A default help option (--help or -h) that displays the help message

  31. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  32. val longNames: HashMap[String, Opt]

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

    Definition Classes
    AnyRef
  34. final def notify(): Unit

    Definition Classes
    AnyRef
  35. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  36. def optName(opt: Opt): String

    Attributes
    protected
  37. val optParseDebug: Boolean

    Override to true to enable simple println's showing what OptParse is doing

  38. val optParseExitOnError: Boolean

    By default OptParse will do a System.

    By default OptParse will do a System.exit on any parsing errors or when --help is invoked. You can override this to false if you want an IllegalArgumentException exception thrown instead

  39. def parse(args: Array[String]): Unit

    Parse the given command line options

  40. val shortNames: HashMap[Char, Opt]

    Attributes
    protected
  41. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  42. def toString(): String

    Definition Classes
    AnyRef → Any
  43. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from OptParseTypes

Inherited from OptParseImplicits

Inherited from AnyRef

Inherited from Any

Ungrouped