]> code.delx.au - offlineimap/blobdiff - head/offlineimap.py
Step 1 of converting tree to Arch layout
[offlineimap] / head / offlineimap.py
index 5c08570a5d7b3327948999ec50a2c478e230d12d..294e586808cb9e35e4c8c6e847cdff38dc10a99c 100644 (file)
@@ -1,6 +1,6 @@
-#!/usr/bin/python2.2 -i
-
-# Copyright (C) 2002 John Goerzen
+#!/usr/bin/env python2.3
+# Startup from single-user installation
+# Copyright (C) 2002, 2003, 2004 John Goerzen
 # <jgoerzen@complete.org>
 #
 #    This program is free software; you can redistribute it and/or modify
 #    along with this program; if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-from imapsync import imaplib, imaputil, imapserver, repository, folder
-import re, getpass, os, os.path
-from ConfigParser import ConfigParser
-
-config = ConfigParser()
-config.read("imapsync.conf")
-metadatadir = os.path.expanduser(config.get("general", "metadata"))
-if not os.path.exists(metadatadir):
-    os.mkdir(metadatadir, 0700)
-
-accounts = config.get("general", "accounts")
-accounts = accounts.replace(" ", "")
-accounts = accounts.split(",")
-
-server = None
-remoterepos = None
-localrepos = None
-
-for accountname in accounts:
-    print "Processing account " + accountname
-    accountmetadata = os.path.join(metadatadir, accountname)
-    if not os.path.exists(accountmetadata):
-        os.mkdir(accountmetadata, 0700)
-    host = config.get(accountname, "remotehost")
-    user = config.get(accountname, "remoteuser")
-    port = None
-    if config.has_option(accountname, "remoteport"):
-        port = config.getint(accountname, "remoteport")
-    password = None
-    if config.has_option(accountname, "remotepass"):
-        password = config.get(accountname, "remotepass")
-    else:
-        password = getpass.getpass("Password for %s: " % accountname)
-    ssl = config.getboolean(accountname, "ssl")
-
-    # Connect to the remote server.
-    server = imapserver.IMAPServer(user, password, host, port, ssl)
-    remoterepos = repository.IMAP.IMAPRepository(server)
-
-    # Connect to the Maildirs.
-    localrepos = repository.Maildir.MaildirRepository(os.path.expanduser(config.get(accountname, "localfolders")))
-
-    # Connect to the local cache.
-    statusrepos = repository.LocalStatus.LocalStatusRepository(accountmetadata)
-    
-    
-    print "Synchronizing folder list..."
-    remoterepos.syncfoldersto(localrepos)
-    print "Done."
-    for remotefolder in remoterepos.getfolders():
-        print "*** SYNCHRONIZING FOLDER %s" % remotefolder.getname()
-        # Load local folder.
-        localfolder = localrepos.getfolder(remotefolder.getname())
-        if not localfolder.isuidvalidityok(remotefolder):
-            print 'UID validity is a problem for this folder; skipping.'
-            continue
-        print "Reading local message list...",
-        localfolder.cachemessagelist()
-        print len(localfolder.getmessagelist().keys()), "messages."
-
-        # Load remote folder.
-        print "Reading remote message list...",        
-        remotefolder.cachemessagelist()
-        print len(remotefolder.getmessagelist().keys()), "messages."
-
-        # Load status folder.
-        statusfolder = statusrepos.getfolder(remotefolder.getname())
-        
-        if statusfolder.isnewfolder():
-            print "Local status folder is new; ignoring."
-        else:
-            print "Synchronizing local changes."
-            localfolder.syncmessagesto(statusfolder, [remotefolder, statusfolder])
-        
-        # Synchronize remote changes.
-        print "Synchronizing remote to local..."
-        remotefolder.syncmessagesto(localfolder, [localfolder, statusfolder])
-
-        # Make sure the status folder is up-to-date.
-        print "Updating local status cache..."
-        localfolder.syncmessagesto(statusfolder)
-        statusfolder.save()
-        
-        
+from offlineimap import init
+init.startup('4.0.7')