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

[ bsd3, library, system ] [ Propose Tags ]

This is a small wrapper over optparse-applicative which allows combining args parsers directly with IO commands. For subcommands this can avoid type boilerplate. It also provides a few functions for common Mod combinations.

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS] 0.1.0,, 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
Dependencies base (>=4 && <5), optparse-applicative (>=0.14.1), semigroups [details]
License BSD-3-Clause
Copyright 2019 Jens Petersen
Author Jens Petersen
Revised Revision 1 made by JensPetersen at 2019-04-15T08:59:08Z
Category System
Home page
Bug tracker
Source repo head: git clone
Uploaded by JensPetersen at 2019-04-08T06:15:25Z
Distributions Fedora:0.1.7, LTSHaskell:0.1.7, NixOS:0.1.7, Stackage:0.1.8
Downloads 4282 total (26 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-04-08 [all 1 reports]

Readme for simple-cmd-args-0.1.1

[back to package description]


Hackage BSD license Stackage Lts Stackage Nightly Build status

A thin layer over optparse-applicative that avoids type plumbing for subcommands by using Parser (IO ()).


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

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

See more examples.