]> TLD Linux GIT Repositories - tld-builder.git/blobdiff - TLD_Builder/bqueue.py
- drop util.sendfile, use shutil.copyfileobj instead
[tld-builder.git] / TLD_Builder / bqueue.py
index d5b183f8c8aac24fb85662c5af38012103380f7e..f90de620a40bfe5e93074492ce90967ae6834f13 100644 (file)
@@ -4,14 +4,12 @@ import re
 import gzip
 import time
 import sys
-if sys.version_info[0] == 2:
-    import StringIO
-else:
-    from io import StringIO
+from io import StringIO
 import os
 import fcntl
 import string
 import tempfile
+import shutil
 
 # TLD_Builder:
 import gpg
@@ -131,21 +129,26 @@ class B_Queue:
         sio = StringIO()
         self._write_to(sio)
         sio.seek(0)
-        sio.write(gpg.sign(sio.read()))
+        sio.write(util.to_str(gpg.sign(sio.read())))
         sio.seek(0)
         (fdno, tmpname) = tempfile.mkstemp(dir=os.path.dirname(name))
         f = os.fdopen(fdno, "w")
-        if re.search(r"\.gz$", name):
-            fgz = gzip.GzipFile(filename=name, mode="w", compresslevel=6, fileobj=f)
-            util.sendfile(sio, fgz)
-            fgz.close()
-        else:
-            util.sendfile(sio, f)
+        shutil.copyfileobj(sio, f)
         f.flush()
         os.fsync(f.fileno())
         f.close()
-        os.chmod(tmpname, 0o0644)
-        os.rename(tmpname, name)
+        if re.search(r"\.gz$", name):
+            f_in = open(tmpname, 'rb')
+            f_out = gzip.open(name, 'wb')
+            shutil.copyfileobj(f_in, f_out)
+            f_in.close();
+            f_out.flush();
+            os.fsync(f_out.fileno())
+            f_out.close();
+            os.remove(tmpname)
+        else:
+            os.rename(tmpname, name)
+        os.chmod(name, 0o0644)
 
     def add(self, req):
         self.requests.append(req)