2013-05-31 26 views
6

cmdArgs package cho Haskell cung cấp phân tích cú pháp tùy chọn lệnh.cmdArgs hoàn thành bash

dựa trên trang này từ các tài liệu http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html#g:4 và nguồn của nó http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html#Complete

Nó dường như khả năng hỗ trợ hoàn bash, nhưng tôi đã không thể làm cho nó làm việc với các phiên bản Implicit của bộ phân tích. http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html

Có ai có ví dụ nào về việc này không?

Chỉnh sửa thêm một ví dụ tốt hơn

nếu tôi có chương trình

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

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

sample = Sample{hello = def} 

main = print =<< cmdArgs sample 

với phân tích các tùy chọn sau

The sample program 

sample [OPTIONS] 

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

làm thế nào để sử dụng tính năng hoàn bash của cmdargs?

+1

Bạn có thể làm rõ những gì bạn đang tìm kiếm không? Các tài liệu gói bạn liên kết để có một ví dụ ngắn trong đó. – jozefg

+0

Tôi đã thêm một số thông tin khác –

Trả lời

5

Để sử dụng hoàn bash, biên dịch chương trình trên như sample, đặt sample trên $PATH của bạn sau đó chạy:

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

Bây giờ bạn có thể gõ vào sample --ver, tab báo chí, và nó sẽ hoàn thành để sample --version.

Có một vài sự thiếu thông tin khi hoàn thành, cụ thể chương trình phải nằm trên $PATH và nếu bạn sử dụng Windows, bạn cần chạy sample.comp đến dos2unix. Nó cũng hoàn toàn không có giấy tờ, mà được cố định bởi tác giả gói.

+1

Cảm ơn rất tốt –

Các vấn đề liên quan