]> git.decadent.org.uk Git - dak.git/commitdiff
marge from master
authorMike O'Connor <stew@dhcp-101.dfw1.kickstart.lan>
Wed, 28 Oct 2009 16:49:07 +0000 (16:49 +0000)
committerMike O'Connor <stew@dhcp-101.dfw1.kickstart.lan>
Wed, 28 Oct 2009 16:49:07 +0000 (16:49 +0000)
1  2 
dak/update_db.py
daklib/utils.py

Simple merge
diff --cc daklib/utils.py
index 04570c956bd26d1f0987a03aa17db9d2ed3b21f6,3305f695ac4faab639dad148b95f8493b83da8b7..ec1cd36686f8b3f943723b430f9850a1a061e2ab
@@@ -1559,7 -1504,52 +1505,52 @@@ apt_pkg.init(
  Cnf = apt_pkg.newConfiguration()
  apt_pkg.ReadConfigFileISC(Cnf,default_config)
  
 -if which_conf_file() != default_config:
 -    apt_pkg.ReadConfigFileISC(Cnf,which_conf_file())
 +#if which_conf_file() != default_config:
 +#    apt_pkg.ReadConfigFileISC(Cnf,which_conf_file())
  
  ###############################################################################
+ def ensure_orig_files(changes, dest_dir, session):
+     """
+     Ensure that dest_dir contains all the orig tarballs for the specified
+     changes. If it does not, symlink them into place.
+     Returns a 2-tuple (already_exists, symlinked) containing a list of files
+     that were already there and a list of files that were symlinked into place.
+     """
+     exists, symlinked = [], []
+     for dsc_file in changes.dsc_files:
+         # Skip all files that are not orig tarballs
+         if not re_is_orig_source.match(dsc_file):
+             continue
+         # Skip orig files not identified in the pool
+         if not (dsc_file in changes.orig_files and
+                 'id' in changes.orig_files[dsc_file]):
+             continue
+         dest = os.path.join(dest_dir, dsc_file)
+         if os.path.exists(dest):
+             exists.append(dest)
+             continue
+         orig_file_id = changes.orig_files[dsc_file]['id']
+         c = session.execute(
+             'SELECT l.path, f.filename FROM location l, files f WHERE f.id = :id and f.location = l.id',
+             {'id': orig_file_id}
+         )
+         res = c.fetchone()
+         if not res:
+             return "[INTERNAL ERROR] Couldn't find id %s in files table." % orig_file_id
+         src = os.path.join(res[0], res[1])
+         os.symlink(src, dest)
+         symlinked.append(dest)
+     return (exists, symlinked)