Config structs aren't dicts, so neither []-indexing nor .get work on
[invirt/packages/invirt-dev.git] / invirtibuilder
index f5cdfb4..61efa9f 100755 (executable)
@@ -26,6 +26,8 @@ principal is the Kerberos principal that requested the build.
 """
 
 
 """
 
 
+from __future__ import with_statement
+
 import contextlib
 import os
 import re
 import contextlib
 import os
 import re
@@ -70,10 +72,14 @@ def getArches(package, ref):
 def getDscName(package, ref):
     """Return the .dsc file that will be generated for this package."""
     v = getVersion(package, ref)
 def getDscName(package, ref):
     """Return the .dsc file that will be generated for this package."""
     v = getVersion(package, ref)
-    return '%s_%s-%s.dsc' % (
+    if v.debian_version:
+        v_str = '%s-%s' % (v.upstream_version,
+                           v.debian_version)
+    else:
+        v_str = v.upstream_version
+    return '%s_%s.dsc' % (
         package,
         package,
-        version.upstream_version,
-        version.debian_version)
+        v_str)
 
 
 def sanitizeVersion(version):
 
 
 def sanitizeVersion(version):
@@ -81,19 +87,17 @@ def sanitizeVersion(version):
 
     This function strips the epoch from the version number and
     replaces any tildes with periods."""
 
     This function strips the epoch from the version number and
     replaces any tildes with periods."""
-    v = '%s-%s' % (version.upstream_version,
-                   version.debian_version)
+    if v.debian_version:
+        v = '%s-%s' % (version.upstream_version,
+                       version.debian_version)
+    else:
+        v = version.upstream_version
     return v.replace('~', '.')
 
 
 def aptCopy(packages, dst_pocket, src_pocket):
     """Copy a package from one pocket to another."""
     return v.replace('~', '.')
 
 
 def aptCopy(packages, dst_pocket, src_pocket):
     """Copy a package from one pocket to another."""
-    binaries = []
-    for line in b.getGitFile(package, commit, 'debian/control').split('\n'):
-        m = re.match('Package: (.*)$')
-        if m:
-            binaries.append(m.group(1))
-
+    binaries = getBinaries(package, commit)
     cpatureOutput(['reprepro-env', 'copy',
                    b.pocketToApt(dst_pocket),
                    b.pocketToApt(src_pocket),
     cpatureOutput(['reprepro-env', 'copy',
                    b.pocketToApt(dst_pocket),
                    b.pocketToApt(src_pocket),
@@ -178,7 +182,7 @@ def updateSuperrepo(pocket, package, commit, principal):
     Note that there's no locking issue here, because we disallow all
     pushes to the superrepo.
     """
     Note that there's no locking issue here, because we disallow all
     pushes to the superrepo.
     """
-    superrepo = os.path.join(b._REPO_DIR, 'packages.git')
+    superrepo = os.path.join(b._REPO_DIR, 'invirt/packages.git')
     branch = b.pocketToGit(pocket)
     tree = c.captureOutput(['git', 'ls-tree', branch],
                          cwd=superrepo)
     branch = b.pocketToGit(pocket)
     tree = c.captureOutput(['git', 'ls-tree', branch],
                          cwd=superrepo)