]> TLD Linux GIT Repositories - TLD.git/blobdiff - pld-builder.new/PLD_Builder/bqueue.py
- moved to separate repo
[TLD.git] / pld-builder.new / PLD_Builder / bqueue.py
diff --git a/pld-builder.new/PLD_Builder/bqueue.py b/pld-builder.new/PLD_Builder/bqueue.py
deleted file mode 100644 (file)
index aff32e9..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import re
-import gzip
-import time
-import StringIO
-import os
-import fcntl
-import string
-import tempfile
-
-# PLD_Builder:
-import gpg
-import request
-import util
-import log
-
-class B_Queue:
-    def __init__(self, filename):
-        self.name = filename
-        self.requests = []
-        self.fd = None
-
-    def dump(self, fname):
-        (fdno, tmpfname) = tempfile.mkstemp(dir=os.path.dirname(fname))
-        f = os.fdopen(fdno, "w")
-        self.requests.reverse()
-        for r in self.requests:
-            r.dump(f)
-        self.requests.reverse()
-        f.flush()
-        os.fsync(f.fileno())
-        f.close()
-        os.chmod(tmpfname, 0644)
-        os.rename(tmpfname, fname)
-
-    def dump_html(self, fname):
-        (fdno, tmpfname) = tempfile.mkstemp(dir=os.path.dirname(fname))
-        f = os.fdopen(fdno, "w")
-        f.write("""
-<html>
-    <head>
-    <link rel="Shortcut Icon" href="http://www.pld-linux.org/favicon.ico"/>
-        <title>PLD builder queue</title>
-        <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="style.css">
-        <script type="text/javascript" src="script.js"></script>
-    </head>
-<body>\n"""
-        )
-        self.requests.reverse()
-        for r in self.requests:
-            r.dump_html(f)
-        self.requests.reverse()
-        f.write("</body></html>\n")
-        f.flush()
-        os.fsync(f.fileno())
-        f.close()
-        os.chmod(tmpfname, 0644)
-        os.rename(tmpfname, fname)
-
-    # read possibly compressed, signed queue
-    def read_signed(self):
-        if re.search(r"\.gz$", self.name):
-            f = gzip.open(self.name)
-        else:
-            f = open(self.name)
-        (signers, body) = gpg.verify_sig(f.read())
-        self.signers = signers
-        self.requests = request.parse_requests(body)
-
-    def _open(self):
-        if self.fd == None:
-            if os.access(self.name, os.F_OK):
-                self.fd = open(self.name, "r+")
-            else:
-                self.fd = open(self.name, "w+")
-
-    def read(self):
-        self._open()
-        self.signers = []
-        body = self.fd.read()
-        if string.strip(body) == "":
-            # empty file, don't choke
-            self.requests = []
-            return
-        try:
-            self.requests = request.parse_requests(body)
-        except Exception, e:
-            log.panic("error parsing %s: %s" % (self.name, e))
-            pass
-
-    def _write_to(self, f):
-        f.write("<queue>\n")
-        for r in self.requests:
-            r.write_to(f)
-        f.write("</queue>\n")
-
-    def write(self):
-        self._open()
-        self.fd.seek(0)
-        self.fd.truncate(0)
-        self._write_to(self.fd)
-        self.fd.flush()
-
-    def lock(self, no_block):
-        self._open()
-        op = fcntl.LOCK_EX
-        if no_block:
-            op = op + fcntl.LOCK_NB
-        try:
-            fcntl.flock(self.fd, op)
-            return 1
-        except IOError:
-            return 0
-
-    def unlock(self):
-        fcntl.flock(self.fd, fcntl.LOCK_UN)
-
-    def write_signed(self, name):
-        sio = StringIO.StringIO()
-        self._write_to(sio)
-        sio.seek(0)
-        sio.write(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)
-        f.flush()
-        os.fsync(f.fileno())
-        f.close()
-        os.chmod(tmpname, 0644)
-        os.rename(tmpname, name)
-
-    def add(self, req):
-        self.requests.append(req)
-
-    def value(self):
-        return self.requests