scala val nameOption: Opts[String] = Opts.option[String]("name", help = "Your name", metavar = "NAME") val verboseFlag: Opts[Boolean] = Opts.flag("verbose", help = "Enable verbose mode") scala val helloCommand: Command[Unit] = Command("hello", "Say hello") { val nameOption: Opts[String] = Opts.option[String]("name", help = "Your name", metavar = "NAME") for { name <- nameOption } yield { println(s"Hello, $name!") } } val goodbyeCommand: Command[Unit] = Command("goodbye", "Say goodbye") { val nameOption: Opts[String] = Opts.option[String]("name", help = "Your name", metavar = "NAME") for { name <- nameOption } yield { println(s"Goodbye, $name!") } } val commands: Command[Unit] = helloCommand orElse goodbyeCommand scala val userArgs: List[String] = List("hello", "--name", "Alice") commands.parse(userArgs) match { case Left(help) => help.print() case Right(action) => action.run() } scala import com.monovore.decline._ object MyCli extends CommandApp( name = "my-cli", header = "A simple command-line application.", main = { val helloCommand: Command[Unit] = Command("hello", "Say hello") { val nameOption: Opts[String] = Opts.option[String]("name", help = "Your name", metavar = "NAME") for { name <- nameOption } yield { println(s"Hello, $name!") } } val goodbyeCommand: Command[Unit] = Command("goodbye", "Say goodbye") { val nameOption: Opts[String] = Opts.option[String]("name", help = "Your name", metavar = "NAME") for { name <- nameOption } yield { println(s"Goodbye, $name!") } } helloCommand orElse goodbyeCommand } ) scala libraryDependencies += "com.monovore" %% "decline" % "1.4.0"


上一篇:
下一篇:
切换中文