2013-05-31 14 views
6

HaskellのcmdArgs packageは、コマンドオプション解析を提供します。cmdArgs bash補完

は、それは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

からこのページに基づいて、私はそれは、パーサーの暗黙のバージョンで動作製することができませんでした。 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 

を持っている場合は、次のオプションにCMDARGSのbashの補完機能を使用しない方法

The sample program 

sample [OPTIONS] 

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

を解析し、より良い例

を追加しましたか?

+1

お探しの商品が見つかりましたか?リンクしたパッケージドキュメントには、短い例があります。 – jozefg

+0

私はもう少しの情報を追加しました –

答えて

5

、bashの補完を使用sampleとして上記のプログラムをコンパイルし、実行し、あなたの$PATHsampleを配置するには:

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

あなたは今、sample --verに押してタブを入力することができ、それがsample --versionに完了します。

完了にはいくつかの不備があります。特にプログラムはあなたの$PATHにある必要があり、Windowsの場合はsample.compからdos2unixまで実行する必要があります。また、完全に文書化されていないので、パッケージ作成者が修正する必要があります。

+1

非常に良いありがとう –