scala
case class Config(name: String = "", version: Int = 0)
scala
val parser = new scopt.OptionParser[Config]("myProgram") {
head("myProgram", "1.0")
opt[String]('n', "name").required().action((x, c) =>
c.copy(name = x)).text("name is a required string property")
opt[Int]('v', "version").required().action((x, c) =>
c.copy(version = x)).text("version is a required integer property")
}
scala
parser.parse(args, Config()) match {
case Some(config) =>
println(s"Name: ${config.name}")
println(s"Version: ${config.version}")
case None =>
println("Failed to parse command line arguments.")
}