You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by pq...@apache.org on 2009/08/24 04:28:05 UTC

svn commit: r807047 - /labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py

Author: pquerna
Date: Mon Aug 24 02:28:05 2009
New Revision: 807047

URL: http://svn.apache.org/viewvc?rev=807047&view=rev
Log:
Start scanning directories for mbox files.

Modified:
    labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py

Modified: labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py
URL: http://svn.apache.org/viewvc/labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py?rev=807047&r1=807046&r2=807047&view=diff
==============================================================================
--- labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py (original)
+++ labs/mboxed/trunk/mboxed/mboxed/bin/mboxed-import.py Mon Aug 24 02:28:05 2009
@@ -12,19 +12,37 @@
 
 from mboxed.config.environment import load_environment
 
-def read_mboxes(root, name):
-    from mboxed import model
+model = None
+
+def read_mboxes(root, name, list):
     p = _pjoin(root, name, "*.mbox")
     files = glob.glob(p)
-    print files
+    # print files
+
+def find_by_path(existing, p):
+    try:
+        return (e for e in existing if e.path == p).next()
+    except StopIteration:
+        return None
 
 def scan_root(path):
+    # assumes it is best to just do a full table scan once, rather than 
+    # querying the database all the time.... 'prolly right most of the time.
+    existing = model.Session.query(model.Lists).all()
     paths = os.listdir(path)
     for p in paths:
+        p = unicode(p)
         if os.path.isdir(_pjoin(path, p)):
-            read_mboxes(path, p)
+            list = find_by_path(existing, p)
+            if list is None:
+                list = model.Lists(path=p)
+            model.Session.begin()
+            read_mboxes(path, p, list)
+            model.Session.add(list)
+            model.Session.commit()
     
 def main():
+    global model
     parser = OptionParser()
     parser.add_option("-c", "--config", dest="config",
                   help="configuration file", metavar="FILE")
@@ -41,7 +59,8 @@
     p = os.path.abspath(options.config)
     conf = appconfig('config:' + p)
     load_environment(conf.global_conf, conf.local_conf)
-    engine = pylons.database.create_engine() 
+    from mboxed import model as _model
+    model = _model
     scan_root(config['mboxed_root'])
     
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org