diff options
author | Rob Austein <sra@hactrn.net> | 2014-05-29 01:11:15 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-05-29 01:11:15 +0000 |
commit | 0606e7af8b08b5eabe2b3ce5720a07a14a09ad48 (patch) | |
tree | 8b644fd9531766fe015364894e0fca170a056f5e | |
parent | 9eb788ce512ff8d95a78e8a87e49a7766291d699 (diff) |
For some reason using choices with a non-string type in argparse works
in Python 2.7.6 on MacOSX but not in Python 2.7.6 on FreeBSD. Not
worth trying to figure out why, custom argparse.Action is easy.
svn path=/trunk/; revision=5840
-rw-r--r-- | rpki/log.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/rpki/log.py b/rpki/log.py index bf9185e8..2d13a953 100644 --- a/rpki/log.py +++ b/rpki/log.py @@ -72,6 +72,10 @@ def argparse_setup(parser): Default logging destination is syslog, but also see rpki.log.init(). """ + class LogLevel(argparse.Action): + def __call__(self, parser, namespace, values, option_string = None): + setattr(namespace, self.dest, getattr(logging, values.upper())) + class RotatingFile(argparse.Action): def __call__(self, parser, namespace, values, option_string = None): setattr(namespace, self.dest, values[0]) @@ -84,9 +88,8 @@ def argparse_setup(parser): setattr(namespace, self.dest + "_interval", int(values[1])) setattr(namespace, self.dest + "_backupCount", int(values[2])) - parser.add_argument("--log-level", default = logging.WARNING, + parser.add_argument("--log-level", default = logging.WARNING, action = LogLevel, choices = ("debug", "info", "warning", "error", "critical"), - type = lambda s: int(getattr(logging, s.upper())), help = "how verbosely to log") group = parser.add_mutually_exclusive_group() group.add_argument("--log-syslog", nargs = "?", default = "daemon", |