Haskell的cmdArgs package提供命令选项解析。

基于docs http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html#g:4的页面及其来源http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html#Complete

它似乎能够支持bash补全,但是我无法使其与解析器的Implicit版本一起使用。 http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html

有人有这样做的例子吗?

编辑添加了一个更好的例子

如果我有程序

{-# LANGUAGE DeriveDataTypeable #-}
import System.Console.CmdArgs

data Sample = Sample {hello :: String}
              deriving (Show, Data, Typeable)

sample = Sample{hello = def}

main = print =<< cmdArgs sample

与解析以下选项
The sample program

sample [OPTIONS]

Common flags:
  -h --hello=ITEM
  -? --help        Display help message
  -V --version     Print version information

如何使用cmdArgs的bash完成功能?

最佳答案

要使用bash补全功能,请将上面的程序编译为sample,将sample放在$PATH上,然后运行:

sample --help=bash > sample.comp
source sample.comp

现在,您可以输入sample --ver,按tab,这将完成sample --version

完成过程中有两点麻烦,特别是该程序必须在$PATH上,如果在Windows上,则需要通过sample.comp运行dos2unix。它也完全没有文档记录,应由软件包作者修复。

关于haskell - cmdArgs bash完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16863284/

10-10 16:26