]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/dbconn.py
log instead of print
[dak.git] / daklib / dbconn.py
index 701f131f6669f8ad75a719707be8dd28fae092ba..84d5b1c2c059fd586793bdbe54d1b0f0468a95d6 100644 (file)
@@ -503,7 +503,7 @@ class BuildQueue(object):
             (ac_fd, ac_name) = mkstemp()
             os.write(ac_fd, MINIMAL_APT_CONF % {'archivepath': self.path,
                                                 'filelist': fl_name})
-            os.close()
+            os.close(ac_fd)
 
             # Run apt-ftparchive generate
             os.chdir(os.path.dirname(ac_name))
@@ -514,7 +514,15 @@ class BuildQueue(object):
             bname = os.path.basename(self.path)
             os.chdir(self.path)
             os.chdir('..')
-            os.system("""apt-ftparchive -qq -o APT::FTPArchive::Release::Origin="%s" -o APT::FTPArchive::Release::Label="%s" -o -o APT::FTPArchive::Release::Description="%s" -o APT::FTPArchive::Release::Architectures="${archs}" release %s > Release""", [self.origin, self.label, self.releasedescription, arches, bname])
+
+            # We have to remove the Release file otherwise it'll be included in the
+            # new one
+            try:
+                os.unlink(os.path.join(bname, 'Release'))
+            except OSError:
+                pass
+
+            os.system("""apt-ftparchive -qq -o APT::FTPArchive::Release::Origin="%s" -o APT::FTPArchive::Release::Label="%s" -o APT::FTPArchive::Release::Description="%s" -o APT::FTPArchive::Release::Architectures="%s" release %s > Release""" % (self.origin, self.label, self.releasedescription, arches, bname))
 
             # Sign if necessary
             if self.signingkey:
@@ -557,11 +565,11 @@ class BuildQueue(object):
                 except OSError:
                     pass
 
-    def clean_and_update(self, starttime, dryrun=False):
+    def clean_and_update(self, starttime, Logger, dryrun=False):
         """WARNING: This routine commits for you"""
         session = DBConn().session().object_session(self)
 
-        if self.generate_metadata:
+        if self.generate_metadata and not dryrun:
             self.write_metadata(starttime)
 
         # Grab files older than our execution time
@@ -571,9 +579,9 @@ class BuildQueue(object):
             killdb = False
             try:
                 if dryrun:
-                    print "I: Would have removed %s from the queue" % o.fullpath
+                    Logger.log(["I: Would have removed %s from the queue" % o.fullpath])
                 else:
-                    print "I: Removing %s from the queue" % o.fullpath
+                    Logger.log(["I: Removing %s from the queue" % o.fullpath])
                     os.unlink(o.fullpath)
                     killdb = True
             except OSError, e:
@@ -582,7 +590,7 @@ class BuildQueue(object):
                     killdb = True
                 else:
                     # TODO: Replace with proper logging call
-                    print "E: Could not remove %s" % o.fullpath
+                    Logger.log(["E: Could not remove %s" % o.fullpath])
 
             if killdb:
                 session.delete(o)
@@ -598,13 +606,13 @@ class BuildQueue(object):
             except NoResultFound:
                 fp = os.path.join(self.path, f)
                 if dryrun:
-                    print "I: Would remove unused link %s" % fp
+                    Logger.log(["I: Would remove unused link %s" % fp])
                 else:
-                    print "I: Removing unused link %s" % fp
+                    Logger.log(["I: Removing unused link %s" % fp])
                     try:
                         os.unlink(fp)
                     except OSError:
-                        print "E: Failed to unlink unreferenced file %s" % r.fullpath
+                        Logger.log(["E: Failed to unlink unreferenced file %s" % r.fullpath])
 
     def add_file_from_pool(self, poolfile):
         """Copies a file into the pool.  Assumes that the PoolFile object is