packages feed

cli-builder-0.1.0: README.md

# CLI Builder

This packages contains builders to make cli application easily based `optparse-applicative`.

## Getting Started

Here is a simple example:

```haskell
{-# LANGUAGE RecordWildCards #-}

import System.CLI.Builder

data Options = Options
  { isSampleOption :: Bool
  } deriving (Eq, Show)

optionsParser :: OptionParser Options
optionsParser = Options
  <$> switch (long "sample" <> help "Sample switch")

cliInfo :: CLIInfo
cliInfo = baseCLIInfo "Simple CLI" "Example for simple CLI"

run :: Options -> IO ()
run Options{..} = do
  putStrLn "Sample application"
  putStrLn $ "Is sample: " ++ show isSampleOption

main :: IO ()
main = buildSimpleCLI cliInfo optionsParser run
```

This action is such as:

```bash
$ sampleApp
Sample application
Is sample: False
$ sampleApp --sample
Sample application
Is sample: True
$ sampleApp --help
Simple CLI

Usage: <interactive> [--help]
  Example for simple CLI

Available options:
  --help                   Show this help text
  --sample                 Sample switch
```

For more examples, see [examples](examples).