blob: 2e537f4a6e822d4201a17ac5edba9ea8a3d7132d (
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# https://fedoraproject.org/wiki/Packaging:Haskell
# https://fedoraproject.org/wiki/PackagingDrafts/Haskell
%global pkg_name optparse-applicative
%global common_summary Utilities and combinators for parsing command line options
%global common_description Here is a simple example of an applicative option parser:\
\
@\
data Sample = Sample\
  { hello :: String\
  , quiet :: Bool }\
\
sample :: Parser Sample\
sample = Sample\
  \<$\> strOption\
  ( long \"hello\"\
  & metavar \"TARGET\"\
  & help \"Target for the greeting\" )\
  \<*\> switch\
  ( long \"quiet\"\
  & 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 -> IO ()\
greet (Sample h False) = putStrLn $ \"Hello, \" ++ h\
greet _ = return ()\
\
main :: IO ()\
main = execParser opts \>\>= greet\
  where\
  opts = info (helper \<*\> sample)\
  ( fullDesc\
  & progDesc \"Print a greeting for TARGET\"\
  & 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:\
\
>hello - a test for optparse-applicative\
>\
>Usage: hello --hello TARGET [--quiet]\
> Print a greeting for TARGET\
>\
>Available options:\
> -h,--help Show this help text\
> --hello TARGET Target for the greeting\
> --quiet Whether to be quiet\
\
containing a short usage summary, and a detailed list of options with\
descriptions.
Name: ghc-%{pkg_name}
Version: 0.5.2.1
Release: 1%{?dist}
Summary: %{common_summary}
License: BSD
URL: http://hackage.haskell.org/package/%{pkg_name}
Source0: http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_name}-%{version}.tar.gz
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
BuildRequires: ghc-process-devel
BuildRequires: ghc-transformers-devel
# End cabal-rpm deps
%description
%{common_description}
%prep
%setup -q -n %{pkg_name}-%{version}
%build
%ghc_lib_build
%install
%ghc_lib_install
%ghc_devel_package
%ghc_devel_description
%ghc_devel_post_postun
%ghc_files LICENSE
%doc README.md
%changelog
* Wed Mar 20 2013 Fedora Haskell SIG <haskell@lists.fedoraproject.org>
- spec file generated by cabal-rpm-0.7.0
|