From c040d164256ee4e9b2fa34a8fceede3391497db6 Mon Sep 17 00:00:00 2001 From: Zev Benjamin Date: Tue, 4 Mar 2014 17:40:36 -0500 Subject: [PATCH] jabber_mirror: Allow the mode to be specified in the config file (imported from commit 8de5006f6935271997204d958c44c03ebf14c403) --- bots/jabber_mirror.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/bots/jabber_mirror.py b/bots/jabber_mirror.py index 383807a..cba7e8d 100755 --- a/bots/jabber_mirror.py +++ b/bots/jabber_mirror.py @@ -275,21 +275,24 @@ def get_rooms(zulip): if __name__ == '__main__': parser = optparse.OptionParser(epilog= -'''Jabber configuration options may also be specified in the zulip configuration -file under the jabber_mirror section. Keys have the same name as options with -hyphens replaced with underscores.''' +'''Most general and Jabber configuration options may also be specified in the +zulip configuration file under the jabber_mirror section (exceptions are noted +in their help sections). Keys have the same name as options with hyphens +replaced with underscores. Zulip configuration options go in the api section, +as normal.'''.replace("\n", " ") ) parser.add_option('--mode', - default="personal", + default=None, action='store', help= \ '''Which mode to run in. Valid options are "personal" and "public". In "personal" mode, the mirror uses an individual users' credentials and mirrors all messages they send on Zulip to Jabber and all private Jabber messages to Zulip. In "public" mode, the mirror uses the credentials for a dedicated mirror -user and mirrors messages sent to Jabber rooms to Zulip.'''.replace("\n", " ")) +user and mirrors messages sent to Jabber rooms to Zulip. Defaults to +"personal"'''.replace("\n", " ")) parser.add_option('-d', '--debug', - help='set logging to DEBUG', + help='set logging to DEBUG. Can not be set via config file.', action='store_const', dest='log_level', const=logging.DEBUG, @@ -335,7 +338,7 @@ user and mirrors messages sent to Jabber rooms to Zulip.'''.replace("\n", " ")) config.readfp(f, config_file) except IOError: pass - for option in ("jid", "jabber_password", "conference_domain"): + for option in ("jid", "jabber_password", "conference_domain", "mode"): if (getattr(options, option) is None and config.has_option("jabber_mirror", option)): setattr(options, option, config.get("jabber_mirror", option)) @@ -347,6 +350,9 @@ user and mirrors messages sent to Jabber rooms to Zulip.'''.replace("\n", " ")) else: setattr(options, option, False) + if options.mode is None: + options.mode = "personal" + if options.mode not in ('public', 'personal'): sys.exit("Bad value for --mode: must be one of 'public' or 'personal'")