60 lines
1.7 KiB
XML
60 lines
1.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<herd>haskell</herd>
|
|
<longdescription>
|
|
The @options@ package lets library and application developers easily work
|
|
with command-line options.
|
|
|
|
The following example is a full program that can accept two options,
|
|
@--message@ and @--quiet@:
|
|
|
|
@
|
|
import Control.Applicative
|
|
import Options
|
|
|
|
data MainOptions = MainOptions
|
|
&#x20; &#x7b; optMessage :: String
|
|
&#x20; , optQuiet :: Bool
|
|
&#x20; &#x7d;
|
|
|
|
instance 'Options' MainOptions where
|
|
&#x20; defineOptions = pure MainOptions
|
|
&#x20; \<*\> simpleOption \"message\" \"Hello world!\"
|
|
&#x20; \"A message to show the user.\"
|
|
&#x20; \<*\> simpleOption \"quiet\" False
|
|
&#x20; \"Whether to be quiet.\"
|
|
|
|
main :: IO ()
|
|
main = runCommand $ \\opts args -> do
|
|
&#x20; if optQuiet opts
|
|
&#x20; then return ()
|
|
&#x20; else putStrLn (optMessage opts)
|
|
@
|
|
|
|
>$ ./hello
|
|
>Hello world!
|
|
>$ ./hello --message='ciao mondo'
|
|
>ciao mondo
|
|
>$ ./hello --quiet
|
|
>$
|
|
|
|
In addition, this library will automatically create documentation options
|
|
such as @--help@ and @--help-all@:
|
|
|
|
>$ ./hello --help
|
|
>Help Options:
|
|
> -h, --help
|
|
> Show option summary.
|
|
> --help-all
|
|
> Show all help options.
|
|
>
|
|
>Application Options:
|
|
> --message :: text
|
|
> A message to show the user.
|
|
> default: "Hello world!"
|
|
> --quiet :: bool
|
|
> Whether to be quiet.
|
|
> default: false
|
|
</longdescription>
|
|
</pkgmetadata>
|