使用scopt解析命令行参数

val parser = new scopt.OptionParser [Config](“scopt”){
 head(“scopt”,“3.x”)
 
 opt [Int] ('f',“foo”)动作{(x,c)=> 
 c.copy(foo = x)} text(“foo是一个整数属性”)
 
 opt [File]('o',“out” < file>“)action {(x,c)=> 
 c.copy(out = x)} text(“out是必需的文件属性”)
 
 opt [(String,Int) k,v),c)=> 
 c.copy(libName = k,maxCount = v)} validate {x => 
 if(x._2> 0)success 
 else failure(“Value< max>必须> 0”)
} keyValueName(“< libname>”,“< ; max>“)text(”< libname>“的最大计数)
 
 opt [Unit](”verbose“)action {(_,c)=& 
 c.copy(verbose = true)} text(“verbose is a flag”)
 
 note(“some notes.\\\
”)
 
 help (“help”)文本(“打印此用法文本”)
 
 arg [File](“< file& => 
 c.copy(files = c.files:+ x)} text(“optional unbounded args”)
 
 cmd(“update”)action {(_,c)=& 
 c.copy(mode =“update”)} text(“update is a command。”)child(
 opt [Unit](“not-keepalive”)abbr (_,c)=> 
 c.copy(keepalive = false)} text(“disable keepalive”),
 opt [Boolean] > 
 c.copy(xyz = x)} text(“xyz is a boolean property”)
)
} 
 // parser.parse返回选项[C] 
 parser.parse(args,Config())map {config => 
 // do stuff 
} getOrElse {
 //参数不正确,使用消息将显示
} 
  
  

以下是生成的用法文本

  scopt 3。 x 
用法:scopt [update] [options] [< file> ...] 
 
 -f< value& | --foo< value> 
 foo是一个整数属性
 -o< file> | --out< file> 
 out是必需的文件属性
 --max:< libname> =< max> 
< libname>的最大计数
 --verbose 
 verbose是一个标志
一些注释。 
 
 --help 
打印此用法文本
< file> ... 
可选无界参数
 
命令:update 
 update是一个命令。 
 
 -nk | --not-keepalive 
 disable keepalive 
 --xyz< value> 
 xyz是一个布尔属性

猜你喜欢

转载自blog.csdn.net/xiaozhaoshigedasb/article/details/86636403
今日推荐