hflags
Version 0.1.3 revision 0 uploaded by GergelyRisko.
Package meta
- 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'sgflags
(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 frommain
. This means, that any Haskell package can easily define command line flags withHFlags
. 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 {-# 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.- Author
- Mihaly Barasz <klao@google.com>, Gergely Risko <gergely@risko.hu>
- Bug reports
- http://github.com/errge/hflags/issues
- Category
- Console
- Copyright
- n/a
- Homepage
- http://github.com/errge/hflags
- Maintainer
- Gergely Risko <gergely@risko.hu>
- Package URL
- n/a
- Stability
- provisional