- Extract common options into cmdline.py
- Change mitmproxy keybindings to fit command line
Some cmdline options and keybindings aren't in operation yet - just stubs
where functionality will be added in the next few commits.
This means that certificates don't accumulate in the conf directory, users
don't have to clear certificates if the CA is regenerated, and the user can
specify a custom CA without invalid certificates being loaded inadvertently.
- Move option parsing utiliities to proxy.py
- Don't have a global config object. Pass it as an argument to ProxyServer.
- Simplify certificate generation logic.
- Use templates for config files. We can re-introduce customization of the
certificate attributes when we need them.
- Split CA and cert generation into separate functions.
- Generation methods provide an error return when generation fails.
- When the user explicitly specifies a certificate, we don't generate it, but
fail if it doesn't exist.
This just makes sense. Later on, we'll have a config file in which users can
set the palette, so that they can over-ride the default background if they
really want.
- The "B" key now sets a filter pattern. Whenever the filter matches, the
terminal beeps.
- The beep specification is now stored in the State object, where I want to
keep all mutable state.
- I've removed the startup flags for beeping for now. We probably want to let
users specify a number of options on startup, including interception patterns
and limits. When we do this, we should also separate out the dumping and
curses programs, because many of these options will only make sense in one of
the two.
- This isn't an exact replacement for the beep functionality I ripped out,
because specifying beeping on intercept is slightly cumbersome (you need to
re-specify the intercept pattern using B). Sorry - we'll add a better way
soon.