name: hflags version: 0.3 x-revision: 1 license: OtherLicense license-file: COPYING author: Mihaly Barasz , Gergely Risko maintainer: Gergely Risko build-type: Simple cabal-version: >= 1.6 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@ (). . 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 and . . A simple example (more in the directory): . @ \#!\/usr\/bin\/env runhaskell . {-\# LANGUAGE TemplateHaskell \#-} . 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\" sequence_ $ replicate flags_repeat greet putStrLn $ \"Your additional arguments were: \" ++ show s putStrLn $ \"Which is the same as: \" ++ show HFlags.arguments where 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./ . Changes in version 0.3 . * Added @undefinedOptions@ . * Added support for @Char@ . Changes in version 0.2 . * API change: the caller mustn't use parantheses around @initHFlags@ . * New feature: dependent defaults, ability to compute some flags' default values based on the current values of other flags 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 source-repository head type: git location: http://github.com/errge/hflags library ghc-options: -Wall build-depends: base >= 4.6 && < 5 , containers >= 0.4 , template-haskell >= 2.8 && <2.11 , text >= 0.11 exposed-modules: HFlags