System.Console.CmdArgs.Helper

cmdargs-0.9.5: Command line argument processing

Safe Haskell | None

System.Console.CmdArgs.Helper

Contents

- Called by the main program
- Called by the helper program

Description

Module for implementing CmdArgs helpers. A CmdArgs helper is an external program, that helps a user construct the command line arguments. To use a helper set the environment variable `$CMDARGS_HELPER` (or `$CMDARGS_HELPER_YOURPROGRAM`) to one of:

- `echo foo` will cause `foo` to be used as the command arguments.
- `cmdargs-browser` will cause a web browser to appear to help entering the arguments. For this command to work, you will need to install the `cmdargs-browser` package: http://hackage.haskell.org/package/cmdargs-browser

Synopsis

- execute :: String -> Mode a -> [String] -> IO (Either String [String])
- data Unknown
- receive :: IO (Mode Unknown)
- reply :: Either String [String] -> IO ()
- comment :: String -> IO ()

# Called by the main program

execute

Arguments

:: String | Name of the command to run, e.g. `echo argument`, `cmdargs-browser`
-> Mode a | Mode to run remotely
-> [String] | Initial set of command line flags (not supported by all helpers)
-> IO (Either String [String]) | Either an error message, or a list of flags to use

Run a remote command line entry.

# Called by the helper program

data Unknown

Unknown value, representing the values stored within the `Mode` structure. While the values are not observable, they behave identically to the original values.

receive :: IO (Mode Unknown)

Receive information about the mode to display.

reply :: Either String [String] -> IO ()

Send a reply with either an error, or a list of flags to use. This function exits the helper program.

comment :: String -> IO ()

Send a comment which will be displayed on the calling console, mainly useful for debugging.