File 1.cabal of Package ghc-hflags

name: hflags
version: 0.4.2
x-revision: 1
license: Apache-2.0
license-file: COPYING
author: Mihaly Barasz <klao@google.com>, Gergely Risko <gergely@risko.hu>
maintainer: Gergely Risko <gergely@risko.hu>
build-type: Simple
cabal-version: >= 1.10
category: Console
stability: provisional
homepage: http://github.com/errge/hflags
bug-reports: http://github.com/errge/hflags/issues

synopsis: Command line flag parser, very similar to Google's gflags
description:
  The @HFlags@ library supports easy definition of command line flags,
  reimplementing the ideas from Google's @gflags@
  (<http://code.google.com/p/gflags>).
  .
  Command line flags can be declared in any file at the toplevel,
  using 'defineFlag'.  At runtime, the actual values are assigned to
  the toplevel @flags_name@ constants.  Those can be used purely
  throughout the program.
  .
  At the beginning of the @main@ function, @$initHFlags \"program
  description\"@ has to be called to initialize the flags.  All flags
  will be initialized that are transitively reachable via imports from
  @main@.  This means, that any Haskell package can easily define
  command line flags with @HFlags@.  This feature is demonstrated by
  <http://github.com/errge/hflags/blob/master/examples/ImportExample.hs>
  and <http://github.com/errge/hflags/tree/master/examples/package>.
  .
  A simple example (more in the
  <http://github.com/errge/hflags/tree/master/examples> directory):
  .
  @
  \#!\/usr\/bin\/env runhaskell
  .
  &#x7b;-\# LANGUAGE TemplateHaskell \#-&#x7d;
  .
  import HFlags
  .
  'defineFlag' \"name\" \"Indiana Jones\" \"Who to greet.\"
  'defineFlag' \"r:repeat\" (3 + 4 :: Int) \"Number of times to repeat the message.\"
  .
  main = do s <- $initHFlags \"Simple program v0.1\"
  &#x20;         sequence_ $ replicate flags_repeat greet
  &#x20;         putStrLn $ \"Your additional arguments were: \" ++ show s
  &#x20;         putStrLn $ \"Which is the same as: \" ++ show HFlags.arguments
  &#x20; where
  &#x20;   greet = putStrLn $ \"Hello \" ++ flags_name ++ \", very nice to meet you!\"
  @
  .
  At @initHFlags@ time, the library also tries to gather flags out of
  environment variables.  @HFLAGS_verbose=True@ is equivalent to
  specify --verbose=True.  This environment feature only works with
  long options and the user has to specify a value even for Bools.
  .
  /Since version 0.2, you mustn't put the initHFlags in a parentheses with the program description.  Just/ @$initHFlags@, /it's cleaner./
  .
  See <http://github.com/errge/hflags/tree/master/changelog> for recent changes.

extra-source-files:
  examples/ComplexExample.hs
  examples/ImportExample.hs
  examples/SimpleExample.hs
  examples/X/B.hs
  examples/X/Y_Y/A.hs
  examples/package/Tup.hs
  examples/package/test/main.hs
  examples/package/tup.cabal
  BLOG.md
  README.md
  changelog

source-repository head
  type: git
  location: http://github.com/errge/hflags

library
  default-language: Haskell2010
  ghc-options: -Wall

  build-depends:
      base >= 4.6 && < 5
    , containers >= 0.4
    , template-haskell >= 2.8
    , text >= 0.11

  exposed-modules:
    HFlags
openSUSE Build Service is sponsored by