assert versionno == version.versionstr, "Revision of main program (%s) does not match that of library (%s). Please double-check your PYTHONPATH and installation locations." % (versionno, version.versionstr)
options = {}
if '--help' in sys.argv[1:]:
- sys.stdout.write(version.cmdhelp + "\n")
+ sys.stdout.write(version.getcmdhelp() + "\n")
sys.exit(0)
- for optlist in getopt(sys.argv[1:], 'P:1oa:c:d:l:u:h')[0]:
+ for optlist in getopt(sys.argv[1:], 'P:1oqa:c:d:l:u:hk:f:')[0]:
options[optlist[0]] = optlist[1]
if options.has_key('-h'):
- sys.stdout.write(version.cmdhelp)
+ sys.stdout.write(version.getcmdhelp())
sys.stdout.write("\n")
sys.exit(0)
configfilename = os.path.expanduser("~/.offlineimaprc")
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)
for section in accounts.getaccountlist(config):
config.remove_option('Account ' + section, "autorefresh")
+ if options.has_key('-q'):
+ for section in accounts.getaccountlist(config):
+ config.set('Account ' + section, "quick", '-1')
+
+ if options.has_key('-f'):
+ foldernames = options['-f'].replace(" ", "").split(",")
+ folderfilter = "lambda f: f in %s" % foldernames
+ folderincludes = "[]"
+ for accountname in accounts.getaccountlist(config):
+ account_section = 'Account ' + accountname
+ remote_repo_section = 'Repository ' + \
+ config.get(account_section, 'remoterepository')
+ local_repo_section = 'Repository ' + \
+ config.get(account_section, 'localrepository')
+ for section in [remote_repo_section, local_repo_section]:
+ config.set(section, "folderfilter", folderfilter)
+ config.set(section, "folderincludes", folderincludes)
+
lock(config, ui)
try: