[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] get rid of popen2 calls in generate_index_diffs



Signed-off-by: Mike O'Connor <stew@vireo.org>
---
 dak/generate_index_diffs.py |   23 ++++++-----------------
 1 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/dak/generate_index_diffs.py b/dak/generate_index_diffs.py
index 286c1eb..a58abdc 100755
--- a/dak/generate_index_diffs.py
+++ b/dak/generate_index_diffs.py
@@ -32,6 +32,7 @@
 
 import sys, os, tempfile
 import apt_pkg
+import bz2, gzip, time
 from daklib import utils
 
 ################################################################################
@@ -82,9 +83,9 @@ def smartopen(file):
     if os.path.isfile(file):
         f = open(file, "r")
     elif os.path.isfile("%s.gz" % file):
-        f = create_temp_file(os.popen("zcat %s.gz" % file, "r"))
+        f = decompressors[ 'zcat' ]( file )
     elif os.path.isfile("%s.bz2" % file):
-        f = create_temp_file(os.popen("bzcat %s.bz2" % file, "r"))
+        f = decompressors[ 'bzcat' ]( file )
     else:
         f = None
     return f
@@ -173,17 +174,8 @@ class Updates:
         for h in l:
             out.write(" %s %7d %s\n" % (hs[h][1][0], hs[h][1][1], h))
 
-def create_temp_file(r):
-    f = tempfile.TemporaryFile()
-    while 1:
-        x = r.readline()
-        if not x: break
-        f.write(x)
-    r.close()
-    del x,r
-    f.flush()
-    f.seek(0)
-    return f
+decompressors = { 'zcat' : gzip.GzipFile,
+                  'bzip2' : bz2.BZ2File }
 
 def sizesha1(f):
     size = os.fstat(f.fileno())[6]
@@ -306,10 +298,7 @@ def main():
 
     if not Options.has_key("PatchName"):
         format = "%Y-%m-%d-%H%M.%S"
-        i,o = os.popen2("date +%s" % (format))
-        i.close()
-        Options["PatchName"] = o.readline()[:-1]
-        o.close()
+        Options["PatchName"] = time.strftime( format )
 
     AptCnf = apt_pkg.newConfiguration()
     apt_pkg.ReadConfigFileISC(AptCnf,utils.which_apt_conf_file())
-- 
1.5.6.5


Reply to: