summaryrefslogtreecommitdiff
path: root/dev-haskell/optparse-applicative/metadata.xml
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-haskell/optparse-applicative/metadata.xml
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-haskell/optparse-applicative/metadata.xml')
-rw-r--r--dev-haskell/optparse-applicative/metadata.xml72
1 files changed, 72 insertions, 0 deletions
diff --git a/dev-haskell/optparse-applicative/metadata.xml b/dev-haskell/optparse-applicative/metadata.xml
new file mode 100644
index 000000000000..a9f0962e5dcf
--- /dev/null
+++ b/dev-haskell/optparse-applicative/metadata.xml
@@ -0,0 +1,72 @@
+<?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>
+ Here is a simple example of an applicative option parser:
+
+ @
+ data Sample = Sample
+ &amp;#x20; &amp;#x7b; hello :: String
+ &amp;#x20; , quiet :: Bool &amp;#x7d;
+
+ sample :: Parser Sample
+ sample = Sample
+ &amp;#x20; \&lt;$\&gt; strOption
+ &amp;#x20; ( long \"hello\"
+ &amp;#x20; &amp; metavar \"TARGET\"
+ &amp;#x20; &amp; help \"Target for the greeting\" )
+ &amp;#x20; \&lt;*\&gt; switch
+ &amp;#x20; ( long \"quiet\"
+ &amp;#x20; &amp; help \"Whether to be quiet\" )
+ @
+
+ The parser is built using applicative style starting from a set of basic
+ combinators. In this example, @hello@ is defined as an 'option' with a
+ @String@ argument, while @quiet@ is a boolean 'flag' (called 'switch').
+
+ A parser can be used like this:
+
+ @
+ greet :: Sample -&gt; IO ()
+ greet (Sample h False) = putStrLn $ \"Hello, \" ++ h
+ greet _ = return ()
+
+ main :: IO ()
+ main = execParser opts \&gt;\&gt;= greet
+ &amp;#x20; where
+ &amp;#x20; opts = info (helper \&lt;*\&gt; sample)
+ &amp;#x20; ( fullDesc
+ &amp;#x20; &amp; progDesc \"Print a greeting for TARGET\"
+ &amp;#x20; &amp; header \"hello - a test for optparse-applicative\" )
+ @
+
+ The @greet@ function is the entry point of the program, while @opts@ is a
+ complete description of the program, used when generating a help text. The
+ 'helper' combinator takes any parser, and adds a @help@ option to it (which
+ always fails).
+
+ The @hello@ option in this example is mandatory (since it doesn't have a
+ default value), so running the program without any argument will display a
+ help text:
+
+ &gt;hello - a test for optparse-applicative
+ &gt;
+ &gt;Usage: hello --hello TARGET [--quiet]
+ &gt; Print a greeting for TARGET
+ &gt;
+ &gt;Available options:
+ &gt; -h,--help Show this help text
+ &gt; --hello TARGET Target for the greeting
+ &gt; --quiet Whether to be quiet
+
+ containing a short usage summary, and a detailed list of options with
+ descriptions.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">pcapriotti/optparse-applicative</remote-id>
+ </upstream>
+</pkgmetadata>