simple-cmd-args: Simple command args parsing and execution

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]

This a smaller wrapper over optparse-applicative which which allows combining the args parsers directly with IO commands, avoiding typical command type boilerplate. Also provides a few option Mod functions.


[Skip to Readme]

Properties

Versions 0.1.0, 0.1.0, 0.1.0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8
Change log CHANGELOG.md
Dependencies base (>=4 && <5), optparse-applicative, semigroups [details]
License BSD-3-Clause
Copyright 2019 Jens Petersen
Author Jens Petersen
Maintainer juhpetersen@gmail.com
Category System
Home page https://github.com/juhp/simple-cmd-args
Bug tracker https://github.com/juhp/simple-cmd-args/issues
Source repo head: git clone https://github.com/juhp/simple-cmd-args.git
Uploaded by JensPetersen at 2019-02-20T04:33:27Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for simple-cmd-args-0.1.0

[back to package description]

simple-cmd-args

Hackage BSD license Stackage Lts Stackage Nightly Build status

A thin layer over optparse-applicative that avoids type plumbing for the common use case of a commandline tool with subcommands, by using Parser (IO ())

Example

See [https://github.com/juhp/simple-cmd-args/tree/master/examples](examples/)

Usage

import SimpleCmdArgs
import Control.Applicative (some)
import SimpleCmd (cmd_)

main =
  simpleCmdArgs Nothing "my example tool" "Longer description..." $
  subcommands
    [ Subcommand "echo" (putStrLn <$> strArg "NAME") "Print name"
    , Subcommand "ls" (cmd_ "ls" <$> some (strArg "FILE...")) "Touch FILE"
    ]