| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
| <pkgmetadata> |
| <maintainer type="project"> |
| <email>haskell@gentoo.org</email> |
| <name>Gentoo Haskell</name> |
| </maintainer> |
| <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> |