# 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 - spec file generated by cabal-rpm-0.7.0