diff options
author | Jakob Odersky <jakob@odersky.com> | 2019-09-21 00:38:30 -0400 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2019-09-22 14:58:51 -0400 |
commit | a5a2118e4e0f31a4b8ae9921fa634058af526cdc (patch) | |
tree | 3a8912601637c78c8995fb8403302e2f3971d323 /commando/src/Main.scala | |
parent | 8a71d804a41ffbd80f881fae24c42637e246afc2 (diff) | |
download | commando-a5a2118e4e0f31a4b8ae9921fa634058af526cdc.tar.gz commando-a5a2118e4e0f31a4b8ae9921fa634058af526cdc.tar.bz2 commando-a5a2118e4e0f31a4b8ae9921fa634058af526cdc.zip |
Migrate build to mill; redesign command structure and parser
Diffstat (limited to 'commando/src/Main.scala')
-rw-r--r-- | commando/src/Main.scala | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/commando/src/Main.scala b/commando/src/Main.scala new file mode 100644 index 0000000..1e1b786 --- /dev/null +++ b/commando/src/Main.scala @@ -0,0 +1,32 @@ +package example + +object Main extends App { + + val cmd = new commando.Command("xorc") { + val version = named("version") + .action(() => println("version 1")) + .repeat() + + named("verbose") + .optionalArg("level") + .action(level => println(s"level $level")) + + positional("FILES") + .action { s => + val f = new java.io.File(s) + if (!f.exists()) error(s"File $s does not exit") + println(f) + } + .repeat() + + val comp = named("completion") + .action(() => println(completion())) + } + cmd.parse(args) match { + case None => + case Some(error) => + println(error) + sys.exit(1) + } + +} |