BSD-3-Clause licensed by Jens Petersen
This version can be pinned in stack with:simple-cmd-args-0.1.6@sha256:6f99b4770d09d59a4fb97faf358725b683ce08c61e347207cbe84334bc2b2c28,1490
Module documentation for 0.1.6
simple-cmd-args

A thin layer over optparse-applicative that avoids type plumbing for
subcommands by using Parser (IO ()).
Usage
import SimpleCmdArgs
import Control.Applicative (some)
import System.Directory
main =
  simpleCmdArgs Nothing "example-tool" "Longer description..." $
  subcommands
    [ Subcommand "echo" "Print words" $
      putStrLn . unwords <$> some (strArg "STR...")
    , Subcommand "ls" "List directory" $
      ls <$> strArg "DIR"
    , Subcommand "mkdir" "Create directory" $
      mkdir <$> parentsOpt <*> strArg "DIR"
    ]
  where
    parentsOpt = switchWith 'p' "parents" "Make missing directories"
ls :: FilePath -> IO ()
ls dir =
  listDirectory dir >>= mapM_ putStrLn
mkdir :: Bool -> FilePath -> IO ()
mkdir parents =
  if parents then createDirectoryIfMissing True else createDirectory
See more examples.
Changelog
simple-cmd-args uses PVP Versioning.
0.1.6 (2020-03-25)
- subcommands now have –help option
 
- output a warning if there are duplicate commands
 
0.1.5 (2020-02-06)
- add Eq and Ord instances for Subcommand
 
0.1.4 (2019-10-29)
- export many, some, str
 
- export <$> and <*> on older ghc7
 
0.1.3 (2019-09-12)
0.1.2 (2019-05-24)
- add flagWith and flagWith’
 
- export Parser, auto, optional
 
0.1.1 (2019-04-08)
- add switchWith, strOptionWith, optionWith, optionalWith,
strOptionalWith, argumentWith
 
- export simpleCmdArgsWithMods
 
0.1.0.1
- fix and improve haddock documentation
 
0.1.0
- Initial release with subcommands and option Mod functions