dbrtools/dbr/dbrutils.py
changeset 200 12422144aae1
parent 189 0d02b2df4cbb
child 201 4e09c8ccae86
--- a/dbrtools/dbr/dbrutils.py	Sat Mar 13 18:56:12 2010 +0000
+++ b/dbrtools/dbr/dbrutils.py	Mon Mar 15 16:57:00 2010 +0000
@@ -68,13 +68,13 @@
 def extractfiles(files, path):
     zips = glob.glob(os.path.join(path, '*.zip'))
     for name in zips:
-      extractfromzip(files, name)    
+      extractfromzip(files, name,'')    
         
     
-def extractfromzip(files, name):
+def extractfromzip(files, name, location):
     tmpfilename = os.tmpnam( )
     print tmpfilename
-    os.chdir(epocroot())
+    os.chdir(os.path.join(epocroot(),location))
     f = open(tmpfilename,'w')
     for file in sorted(files):
         str = '%s%s' % (file,'\n')
@@ -115,13 +115,13 @@
       if(exeresult):
         sys.exit('Fatal error executing: %s\nReported error: %s' % (exestr,os.strerror(exeresult)))
       else:  
-        db = gethashes(db,outputfile)
+        db = gethashes(db,outputfile, False)
         os.unlink(outputfile)
         os.unlink(tmpfilename)
     return db
 
 # Brittle and nasty!!!
-def gethashes(db,md5filename):
+def gethashes(db, md5filename, create):
     os.chdir(epocroot())
 #    print 'trying to open %s' % md5filename
     file = open(md5filename,'r')
@@ -136,9 +136,16 @@
         if(res):
             filename = "%s%s" % (root,res.group(1))
             filename = string.lower(fixpath.sub('/',leadingslash.sub('',filename)))            
-#            print "found %s" % filename   
-            if(filename in db):
-                db[filename]['md5'] = res.group(3)
+#            print "found %s" % filename
+            if(create):
+              entry = dict()
+              entry['time'] = 'xxx'
+              entry['size'] = 'xxx'
+              entry['md5'] = res.group(3)
+              db[filename] = entry
+            else:    
+              if(filename in db):
+                  db[filename]['md5'] = res.group(3)
 
         else:
             res = dirparse.match(line)