hs-cli
hs-cli copied to clipboard
Command Line Interface Utility (Printing, Formatting, Options parsing) for Haskell
cli
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.