Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.
/ hs-cli Public archive

Command Line Interface Utility (Printing, Formatting, Options parsing) for Haskell

License

Notifications You must be signed in to change notification settings

vincenthz/hs-cli

Repository files navigation

cli

Build Status BSD Haskell

Documentation: cli on hackage

Option parser in DSL form, and display utilities for command line interfaces.

Option Parsing

Basic program looks like:

defaultMain $ do
    f1 <- flag ..
    f2 <- argument ..
    action $ \toParam ->
        something (toParam f1) (toParam f2) ..

with subcommands:

defaultMain $ do
    subcommand "foo" $ do
       <..flags & parameters definitions...>
       action $ \toParam -> <..IO-action..>
    subcommand "bar" $ do
       <..flags & parameters definitions...>
       action $ \toParam -> <..IO-action..>

A Real Example:

main = defaultMain $ do
    programName "test-cli"
    programDescription "test CLI program"
    flagA    <- flag $ FlagShort 'a' <> FlagLong "aaa"
    allArgs  <- remainingArguments "FILE"
    action $ \toParam -> do
        putStrLn $ "using flag A : " ++ show (toParam flagA)
        putStrLn $ "args: " ++ show (toParam allArgs)

License

The source code of cli is available under the BSD 3-Clause license, see LICENSE for more information.

About

Command Line Interface Utility (Printing, Formatting, Options parsing) for Haskell

Resources

License

Stars

Watchers

Forks

Packages

No packages published