I am new to Scala and I need to create a really simple command line parser that provides something like this: I created JRuby in a few minutes: -
java -jar demo.jar --help Command Line Example Application Example: java -jar demo.jar --dn "CN=Test" --nde-url "http://www.example.com" --password "password" For usage see below: -n http://www.example.com -p, --password set the password -c, --capi set add to Windows key-store -h, --help Show this message -v, --version Print version
Scallop looks like it will be a trick, but I can not find a simple example that works! All the examples I found seem fragmented and do not work for one reason or another.
UPDATE
I found this example that works, but I'm not sure how to relate it to the actual arguments in the main method.
import org.rogach.scallop._; object cmdlinetest { def main(args: Array[String]) val opts = Scallop(List("-d","--num-limbs","1")) .version("test 1.2.3 (c) 2012 Mr Placeholder") .banner("""Usage: test [OPTION]... [pet-name] |test is an awesome program, which does something funny |Options: |""".stripMargin) .footer("\nFor all other tricks, consult the documentation!") .opt[Boolean]("donkey", descr = "use donkey mode") .opt("monkeys", default = Some(2), short = 'm') .opt[Int]("num-limbs", 'k', "number of libms", required = true) .opt[List[Double]]("params") .opt[String]("debug", hidden = true) .props[String]('D',"some key-value pairs") // you can add parameters a bit later .args(List("-Dalpha=1","-D","betta=2","gamma=3", "Pigeon")) .trailArg[String]("pet name") .verify println(opts.help) } }
user1513388
source share