aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/optmanager.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2017-03-07 20:57:54 +1300
committerAldo Cortesi <aldo@nullcube.com>2017-03-07 21:01:21 +1300
commit98ec3b77fe8d3c0bcb0761980568ddd067380bd1 (patch)
tree331908d76ba210bf6491761bcccde518fa01db43 /mitmproxy/optmanager.py
parentaed780bf48f6231e63a2b193318bc234152e2743 (diff)
downloadmitmproxy-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.py31
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,