diff options
Diffstat (limited to 'baserockimport/mainloop.py')
-rw-r--r-- | baserockimport/mainloop.py | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/baserockimport/mainloop.py b/baserockimport/mainloop.py index 32dbf24..36a7016 100644 --- a/baserockimport/mainloop.py +++ b/baserockimport/mainloop.py @@ -260,19 +260,19 @@ class ImportLoop(object): version, is_build_dep, to_process, processed, errors): failed_dep_package = find( - errors, lambda i: i.match(name, version)) + errors, lambda i: i.match(kind, name, version)) if failed_dep_package: logging.debug( "Ignoring %s as it failed earlier.", failed_dep_package) return dep_package = find( - processed, lambda i: i.match(name, version)) + processed, lambda i: i.match(kind, name, version)) if dep_package is None: # Not yet processed queue_item = find( - to_process, lambda i: i.match(name, version)) + to_process, lambda i: i.match(kind, name, version)) if queue_item is None: queue_item = baserockimport.package.Package( kind, name, version) @@ -568,21 +568,20 @@ class ImportLoop(object): else: raise cliapp.AppException('No morphology for %s' % package) - def format_build_dep(name, version): - dep_package = find(graph, lambda p: p.match(name, version)) + def format_build_dep(kind, name, version): + dep_package = find( + graph, lambda p: p.match(kind, name, version)) return '%s-%s' % (name, dep_package.version_in_use) - def get_build_deps(morphology): - deps = dict() - for kind in self.importers: - field = 'x-build-dependencies-%s' % kind - deps.update(morphology.get(field, [])) - return deps - - build_depends = [ - format_build_dep(name, version) for name, version in - get_build_deps(m).iteritems() - ] + def get_build_deps(morphology, kind): + field = 'x-build-dependencies-%s' % kind + return morphology.get(field, {}) + + build_depends = [] + for kind in self.importers: + for name, version in get_build_deps(m, kind).iteritems(): + build_depends.extend( + format_build_dep(kind, name, version)) entry = { 'name': m['name'], |