【发布时间】:2016-02-16 00:03:24
【问题描述】:
我正在使用存储命令行参数的构造函数 SrvOpts 填充 Opts 类型:
main :: IO ()
main = join $ customExecParser cf $ info options
(fullDesc <> header "header" <> footer "footer")
where cf = defaultPrefs { prefShowHelpOnError=True }
options :: Parser (IO ())
options = subparser $
command "serve" (info (handleServe <$> (SrvOpts
<$> strOption [...]
函数handleServe 获取数据,然后进行进一步验证。
如何使用自定义错误消息和从options 内部handleServe 生成的正常optparse-applicative 样式使用信息终止程序?
【问题讨论】:
-
你总是想终止你的程序吗?或者,如果用户使用了错误的参数或
-h,您是否只想显示使用/帮助信息? -
解析后我正在检查给定的字符串格式是否正确,如果不是,则希望以基于
options的正常错误消息和使用信息终止。参数处理/解析工作正常。 -
如果您要单独检查字符串的格式,您可以通过定义自己的ReadM 并将其与
option一起使用(而不是使用strOption)来实现。 -
@ben-james: 好的,但是如果我有更复杂的检查依赖于其他尚未解析的值呢?有没有办法从应用程序
options定义之外呈现从options生成的“标准错误+使用信息”?
标签: haskell command-line-arguments