cli-builder: Simple project template from stack

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see README.md


[Skip to Readme]

Properties

Versions 0.1.0, 0.1.0
Change log None available
Dependencies base (>=4.7 && <5), either, exceptions (>=0.8.0.2), optparse-applicative (>=0.12 && <0.14), transformers (>=0.3.0.0 && <0.6) [details]
License MIT
Copyright 2016 uecmma
Author uecmma
Maintainer developer@mma.club.uec.ac.jp
Category Tool
Home page https://github.com/uecmma/haskell-library-collections/tree/master/cli-builder
Bug tracker https://github.com/uecmma/haskell-library-collections/issues
Source repo head: git clone git+https://gitlab.mma.club.uec.ac.jp/uecmma/haskell-library-collections.git
Uploaded by mizunashi_mana at 2016-11-09T09:51:11Z

Modules

Manual Flags

NameDescriptionDefault
test-doctestEnabled
Automatic Flags
NameDescriptionDefault

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for cli-builder-0.1.0

[back to package description]

CLI Builder

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

Getting Started

Here is a simple example:

{-# 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:

$ 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.