blob: 51a1b75d2a7405d4ad6f85ee4feb7dfa63011353 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?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>
|