From: Riccardo Murri Date: Thu, 3 Jan 2008 03:13:04 +0000 (+0100) Subject: Add option '-k' for overriding config options X-Git-Tag: last-darcs-commit~2 X-Git-Url: https://code.delx.au/offlineimap/commitdiff_plain/2985ddc61eadd3804a6d58a38e2913be377eb162 Add option '-k' for overriding config options --- diff --git a/offlineimap.sgml b/offlineimap.sgml index 5b5d148..1fc5bd6 100644 --- a/offlineimap.sgml +++ b/offlineimap.sgml @@ -373,6 +373,17 @@ cd offlineimap-x.y.z will debug the threading model. + -k [section:]option=value + + Override configuration file option. If + "section" is omitted, it defaults + to general. Any underscores "_" in + the section name are replaced with spaces: for instance, + to override option autorefresh in + the "[Account Personal]" section in the config file one + would use "-k Account_Personal:autorefresh=30". + + -l filename diff --git a/offlineimap/init.py b/offlineimap/init.py index 9824f05..d901864 100644 --- a/offlineimap/init.py +++ b/offlineimap/init.py @@ -53,7 +53,7 @@ def startup(versionno): sys.stdout.write(version.getcmdhelp() + "\n") sys.exit(0) - for optlist in getopt(sys.argv[1:], 'P:1oqa:c:d:l:u:h')[0]: + for optlist in getopt(sys.argv[1:], 'P:1oqa:c:d:l:u:hk:')[0]: options[optlist[0]] = optlist[1] if options.has_key('-h'): @@ -79,6 +79,17 @@ def startup(versionno): config.read(configfilename) + # override config values with option '-k' + for option in options.keys(): + if option == '-k': + (key, value) = options['-k'].split('=', 1) + if ':' in key: + (secname, key) = key.split(':', 1) + section = secname.replace("_", " ") + else: + section = "general" + config.set(section, key, value) + ui = offlineimap.ui.detector.findUI(config, options.get('-u')) UIBase.setglobalui(ui) diff --git a/offlineimap/version.py b/offlineimap/version.py index 93d1ca3..0a46dec 100644 --- a/offlineimap/version.py +++ b/offlineimap/version.py @@ -94,7 +94,15 @@ def getcmdhelp(): one else. The maildir option will enable debugging for certain Maildir operations. - -o Run only once, ignoring any autorefresh setting in + -k [section:]option=value + Override configuration file option. If"section" is + omitted, it defaults to "general". Any underscores + "_" in the section name are replaced with spaces: + for instance, to override option "autorefresh" in + the "[Account Personal]" section in the config file + one would use "-k Account_Personal:autorefresh=30". + + -o Run only once, ignoring any autorefresh setting in the config file. -q Run only quick synchronizations. Ignore any flag