]> git.decadent.org.uk Git - dak.git/commitdiff
Move common code to the new get_packages_from_ftp()
authorLuca Falavigna <dktrkranz@debian.org>
Sun, 12 Dec 2010 01:46:10 +0000 (01:46 +0000)
committerLuca Falavigna <dktrkranz@debian.org>
Mon, 10 Jan 2011 20:14:29 +0000 (20:14 +0000)
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
dak/override.py
dak/override_disparity.py
daklib/utils.py

index 6d5b82e890852c52e62e3c3b808cc66109711f80..ddb829b621a2bdb5beb95db1b56bed38504d7b6a 100755 (executable)
@@ -28,7 +28,6 @@
 import os
 import sys
 import apt_pkg
-import commands
 
 from daklib.config import Config
 from daklib.dbconn import *
@@ -67,16 +66,7 @@ def check_override_compliance(package, priority, suite, cnf, session):
     arches -= set(["source", "all"])
     for arch in arches:
         for component in components:
-            filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (cnf["Dir::Root"], suite, component, arch)
-            (fd, temp_filename) = utils.temp_filename()
-            (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_filename))
-            if (result != 0):
-                utils.fubar("Gunzip invocation failed!\n%s\n" % (output), result)
-            filename = "%s/dists/%s/%s/debian-installer/binary-%s/Packages.gz" % (cnf["Dir::Root"], suite, component, arch)
-            if os.path.exists(filename):
-                (result, output) = commands.getstatusoutput("gunzip -c %s >> %s" % (filename, temp_filename))
-                if (result != 0):
-                    utils.fubar("Gunzip invocation failed!\n%s\n" % (output), result)
+            temp_filename = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
             packages = utils.open_file(temp_filename)
             Packages = apt_pkg.ParseTagFile(packages)
             while Packages.Step():
index 7a3b290656d1202edfd94db62857b2776fd6e7aa..94e1e9e8b0222863fe0db36d6f6436eff2931b75 100755 (executable)
@@ -37,7 +37,6 @@ Generate a list of override disparities
 import os
 import sys
 import apt_pkg
-import commands
 
 from daklib.config import Config
 from daklib.dbconn import *
@@ -85,16 +84,7 @@ def main():
     arches -= set(['source', 'all'])
     for arch in arches:
         for component in components:
-            filename = '%s/dists/%s/%s/binary-%s/Packages.gz' % (cnf['Dir::Root'], suite, component, arch)
-            (fd, temp_filename) = utils.temp_filename()
-            (result, output) = commands.getstatusoutput('gunzip -c %s > %s' % (filename, temp_filename))
-            if (result != 0):
-                utils.fubar('Gunzip invocation failed!\n%s\n' % (output), result)
-            filename = '%s/dists/%s/%s/debian-installer/binary-%s/Packages.gz' % (cnf['Dir::Root'], suite, component, arch)
-            if os.path.exists(filename):
-                (result, output) = commands.getstatusoutput('gunzip -c %s >> %s' % (filename, temp_filename))
-                if (result != 0):
-                    utils.fubar('Gunzip invocation failed!\n%s\n' % (output), result)
+            temp_filename = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
             packages_file = utils.open_file(temp_filename)
             Packages = apt_pkg.ParseTagFile(packages_file)
             while Packages.Step():
index 1756f58fa2d27132a3675a95716ab4404cf9a898..dffad274c508c9c06dccc9143c5be4c6c0490fc0 100755 (executable)
@@ -1571,3 +1571,24 @@ def parse_wnpp_bug_file(file = "/srv/ftp-master.debian.org/scripts/masterfiles/w
                 bugs.append(bug_no)
         wnpp[source] = bugs
     return wnpp
+
+################################################################################
+
+def get_packages_from_ftp(root, suite, component, architecture):
+    """
+    Returns a filename containing data collected by aggregating Packages.gz files
+    gathered for each architecture.
+
+    Returned file has to be manually deleted afterwards.
+    """
+    filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (root, suite, component, architecture)
+    (fd, temp_file) = temp_filename()
+    (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_file))
+    if (result != 0):
+        fubar("Gunzip invocation failed!\n%s\n" % (output), result)
+    filename = "%s/dists/%s/%s/debian-installer/binary-%s/Packages.gz" % (root, suite, component, architecture)
+    if os.path.exists(filename):
+        (result, output) = commands.getstatusoutput("gunzip -c %s >> %s" % (filename, temp_file))
+        if (result != 0):
+            fubar("Gunzip invocation failed!\n%s\n" % (output), result)
+    return temp_file