From 33b1d8e9747ac4712a7a703d823110fcae7f749b Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 1 Jan 2014 15:49:25 +0000 Subject: db: add each_in_build_order() --- aports/db.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/aports/db.lua b/aports/db.lua index 3f85920..a4ebd58 100644 --- a/aports/db.lua +++ b/aports/db.lua @@ -204,6 +204,28 @@ function Aports:each_need_build() end) end +function Aports:each_in_build_order(namelist) + local pkgs = {} + for _,name in pairs(namelist) do + for pkg in self:each_pkg_with_name(name) do + pkgs[pkg.dir] = true + end + end + + return coroutine.wrap(function() + for _,name in pairs(namelist) do + for dep in self:recursive_dependencies(name) do + for pkg in self:each_pkg_with_name(dep) do + if pkgs[pkg.dir] then + coroutine.yield(pkg) + pkgs[pkg.dir] = nil + end + end + end + end + end) +end + function M.new(aportsdir, ...) local h = Aports h.aportsdir = aportsdir -- cgit v1.2.3