Завершение cmdArgs Bash
Пакет cmdArgs для Haskell обеспечивает разбор параметров команды.
на основе этой страницы из документов http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html и его источника http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html
Кажется, он может поддерживать завершение bash, но я не смог заставить его работать с неявной версией синтаксического анализатора. http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html
Есть ли у кого-нибудь такой пример?
Edit добавил лучший пример
если у меня есть программа
{-# 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
как использовать функцию завершения bash в cmdArgs?
1 ответ
Чтобы использовать завершение bash, скомпилируйте вышеуказанную программу как sample
, место sample
на ваше $PATH
затем запустите:
sample --help=bash > sample.comp
source sample.comp
Теперь вы можете ввести sample --ver
нажмите вкладку, и он завершит sample --version
,
В завершении есть пара неудач, в частности, программа должна быть на вашем $PATH
и если вы используете Windows, вам нужно запустить sample.comp
через dos2unix
, Это также полностью недокументировано, что должно быть исправлено автором пакета.