-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple interface to optparse-applicative -- -- Simple interface to optparse-applicative @package optparse-simple @version 0.0.4 -- | Simple interface to program arguments. -- -- Typical usage with no commands: -- --
-- do (opts,()) <- -- simpleOptions "ver" -- "header" -- "desc" -- (flag () () (long "some-flag")) -- empty -- doThings opts ---- -- Typical usage with commands: -- --
-- do (opts,runCmd) <- -- simpleOptions "ver" -- "header" -- "desc" -- (pure ()) $ -- do addCommand "delete" -- "Delete the thing" -- (const deleteTheThing) -- (pure ()) -- addCommand "create" -- "Create a thing" -- createAThing -- (strOption (long "hello")) -- runCmd --module Options.Applicative.Simple -- | Generate and execute a simple options parser. simpleOptions :: String -> String -> String -> Parser a -> EitherT b (Writer (Mod CommandFields b)) () -> IO (a, b) -- | Generate a string like Version 1.2, Git revision 1234. -- -- $(simpleVersion …) :: String simpleVersion :: Version -> Q Exp -- | Add a command to the options dispatcher. addCommand :: String -> String -> (a -> b) -> Parser a -> EitherT b (Writer (Mod CommandFields b)) () -- | Add a command that takes sub-commands to the options dispatcher. -- -- Example: -- --
-- addSubCommands "thing" -- "Subcommands that operate on things" -- (do addCommand "delete" -- "Delete the thing" -- (const deleteTheThing) -- (pure ()) -- addCommand "create" -- "Create a thing" -- createAThing -- (strOption (long "hello"))) ---- -- If there are common options between all the sub-commands, use -- addCommand in combination with simpleParser instead of -- addSubCommands. addSubCommands :: String -> String -> EitherT b (Writer (Mod CommandFields b)) () -> EitherT b (Writer (Mod CommandFields b)) () -- | Generate a simple options parser. -- -- Most of the time you should use simpleOptions instead, but -- simpleParser can be used for sub-commands that need common -- options. For example: -- --
-- addCommand "thing" -- "Subcommands that operate on things" -- (\(opts,runSubCmd) -> runSubCmd opts) -- (simpleParser (flag () () (long "some-flag")) $ -- do addCommand "delete" -- "Delete the thing" -- (const deleteTheThing) -- (pure ()) -- addCommand "create" -- "Create a thing" -- createAThing -- (strOption (long "hello"))) --simpleParser :: Parser a -> EitherT b (Writer (Mod CommandFields b)) () -> Parser (a, b)