import re, os, os.path, offlineimap, sys
from offlineimap.CustomConfig import CustomConfigParser
from threading import *
-import threading
+import threading, socket
from getopt import getopt
try:
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:')[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')
+
lock(config, ui)
+ try:
+ pidfd = open(config.getmetadatadir() + "/pid", "w")
+ pidfd.write(os.getpid())
+ pidfd.close()
+ except:
+ pass
+
try:
if options.has_key('-l'):
sys.stderr = ui.logfile
+ socktimeout = config.getdefaultint("general", "socktimeout", 0)
+ if socktimeout > 0:
+ socket.setdefaulttimeout(socktimeout)
+
activeaccounts = config.get("general", "accounts")
if options.has_key('-a'):
activeaccounts = options['-a']