gpt4 book ai didi

haskell - optparse-applicative : Generate usage information with custom error message from options definition

转载 作者:行者123 更新时间:2023-12-05 05:24:17 25 4
gpt4 key购买 nike

我正在使用存储命令行参数的构造函数 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 函数获取数据,然后进行一些进一步的验证。

如何使用自定义错误消息和从 handleServe 内部的 options 生成的正常 optparse-applicative 样式使用信息来终止程序?

最佳答案

可以使用 parserFailure 来完成来自 Options.Applicative.Extra 的函数:

renderError :: Context -> String -> IO ()                                       
renderError c msg = handleParseResult . Failure $
parserFailure argPrefs argInfo (ErrorMsg msg) [c]

在当前版本 0.12.0.1 Context必须从 Options.Applicative.Internal 导入,这会改变。 Context构造函数采用子解析器的名称和 ParserInfo (info (handleServe <$> ... 部分)用于呈现使用信息。

关于haskell - optparse-applicative : Generate usage information with custom error message from options definition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com