diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2017-03-07 20:57:54 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2017-03-07 21:01:21 +1300 |
commit | 98ec3b77fe8d3c0bcb0761980568ddd067380bd1 (patch) | |
tree | 331908d76ba210bf6491761bcccde518fa01db43 /mitmproxy/optmanager.py | |
parent | aed780bf48f6231e63a2b193318bc234152e2743 (diff) | |
download | mitmproxy-98ec3b77fe8d3c0bcb0761980568ddd067380bd1.tar.gz mitmproxy-98ec3b77fe8d3c0bcb0761980568ddd067380bd1.tar.bz2 mitmproxy-98ec3b77fe8d3c0bcb0761980568ddd067380bd1.zip |
Carefully re-add a small number of short flags
The mechanism for booleans attaches the short flag to whatever the opposite of
the default is.
Diffstat (limited to 'mitmproxy/optmanager.py')
-rw-r--r-- | mitmproxy/optmanager.py | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py index 8dddd11a..b05e78eb 100644 --- a/mitmproxy/optmanager.py +++ b/mitmproxy/optmanager.py @@ -362,18 +362,35 @@ class OptManager: else: # pragma: no cover raise NotImplementedError("Unsupported option type: %s", o.typespec) - def make_parser(self, parser, optname, metavar=None): + def make_parser(self, parser, optname, metavar=None, short=None): o = self._options[optname] - f = optname.replace("_", "-") + + def mkf(l, s): + l = l.replace("_", "-") + f = ["--%s" % l] + if s: + f.append("-" + s) + return f + + flags = mkf(optname, short) + if o.typespec == bool: g = parser.add_mutually_exclusive_group(required=False) + onf = mkf(optname, None) + offf = mkf("no-" + optname, None) + # The short option for a bool goes to whatever is NOT the default + if short: + if o.default: + offf = mkf("no-" + optname, short) + else: + onf = mkf(optname, short) g.add_argument( - "--no-%s" % f, + *offf, action="store_false", dest=optname, ) g.add_argument( - "--%s" % f, + *onf, action="store_true", dest=optname, help=o.help @@ -381,7 +398,7 @@ class OptManager: parser.set_defaults(**{optname: None}) elif o.typespec in (int, typing.Optional[int]): parser.add_argument( - "--%s" % f, + *flags, action="store", type=int, dest=optname, @@ -390,7 +407,7 @@ class OptManager: ) elif o.typespec in (str, typing.Optional[str]): parser.add_argument( - "--%s" % f, + *flags, action="store", type=str, dest=optname, @@ -400,7 +417,7 @@ class OptManager: ) elif o.typespec == typing.Sequence[str]: parser.add_argument( - "--%s" % f, + *flags, action="append", type=str, dest=optname, |