X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=TLD_Builder%2Fbqueue.py;h=e349c0ec0313a33872c19fa4e4519ade2f3eba84;hb=HEAD;hp=e8877524f6e3a373257d652e6243bf9239591574;hpb=92949e17161a53bfb4a60099e22b58ad63abce4c;p=tld-builder.git
diff --git a/TLD_Builder/bqueue.py b/TLD_Builder/bqueue.py
index e887752..e349c0e 100644
--- a/TLD_Builder/bqueue.py
+++ b/TLD_Builder/bqueue.py
@@ -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
@@ -35,7 +33,7 @@ class B_Queue:
f.flush()
os.fsync(f.fileno())
f.close()
- os.chmod(tmpfname, 0644)
+ os.chmod(tmpfname, 0o0644)
os.rename(tmpfname, fname)
def dump_html(self, fname):
@@ -47,14 +45,8 @@ class B_Queue:
TLD builder queue
-
-
-
-
"""
)
@@ -66,7 +58,7 @@ class B_Queue:
f.flush()
os.fsync(f.fileno())
f.close()
- os.chmod(tmpfname, 0644)
+ os.chmod(tmpfname, 0o0644)
os.rename(tmpfname, fname)
# read possibly compressed, signed queue
@@ -90,7 +82,7 @@ class B_Queue:
self._open()
self.signers = []
body = self.fd.read()
- if string.strip(body) == "":
+ if body.strip() == "":
# empty file, don't choke
self.requests = []
return
@@ -128,24 +120,29 @@ class B_Queue:
fcntl.flock(self.fd, fcntl.LOCK_UN)
def write_signed(self, name):
- sio = StringIO.StringIO()
+ 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, 0644)
- 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)