2013-05-31 30 views
6

Haskell的cmdArgs package提供命令選項解析。cmdArgs bash完成

基於此頁面的文檔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補全,但我不能使它與分析器的隱式版本。 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補全功能?

+1

你能說清楚你在找什麼嗎?您鏈接的軟件包文檔中有一個簡短的示例。 – jozefg

+0

我添加了一些信息 –

回答

5

要使用bash補全,編譯上面的程序作爲sample,將sample$PATH然後運行:

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

現在,您可以鍵入sample --ver,按Tab鍵,它會完成對sample --version

完成時有幾個infelicities,特別是該程序必須在您的$PATH,如果您在Windows上,您需要運行sample.compdos2unix。它也完全沒有文檔,它應該由軟件包作者修復。

+1

非常感謝 –