update for new sqlalchemy api
[invirt/packages/invirt-dev.git] / invirtibuilder
index c955dfd..0e5ef50 100755 (executable)
@@ -202,8 +202,11 @@ def uploadBuild(pocket, workdir):
         except subprocess.CalledProcessError, e:
             if not force:
                 raise
-            package = deb822.Changes(open(changes).read())['Binary']
-            logAndRun(['reprepro-env', 'remove', apt, package])
+            changelog = deb822.Changes(open(changes).read())
+            packages = set(changelog['Binary'].split())
+            packages.add(changelog['Source'])
+            for package in packages:
+                logAndRun(['reprepro-env', 'remove', apt, package])
             logAndRun(upload)
 
 
@@ -284,8 +287,8 @@ def packageWorkdir(package, commit, build_id):
     workdir = tempfile.mkdtemp(prefix=("b%d-" % build_id))
     try:
         p_archive = subprocess.Popen(
-            ['git', 'archive',
-             '--remote=file://%s' % b.getRepo(package),
+            ['git', '--git-dir=%s' % (b.getRepo(package),),
+             'archive',
              '--prefix=%s/' % package,
              commit,
              ],
@@ -327,7 +330,7 @@ def build():
         db.pocket = pocket
         db.commit = commit
         db.principal = principal
-        database.session.save_or_update(db)
+        database.session.add(db)
         database.session.commit()
 
         database.session.begin()
@@ -412,7 +415,7 @@ def build():
             if logfile is not None:
                 logfile.close()
 
-            database.session.save_or_update(db)
+            database.session.add(db)
             database.session.commit()
 
             # Finally, now that everything is done, remove the