#!/usr/bin/lua require("aports") require("lfs") local db -- subcommands ----------------------- subcmd = {} subcmd.revdep = { desc = "Print reverse dependencies", usage = "PKG...", run = function(opts) local i for i = 2, #opts do db:foreach_revdep(opts[i], function (k,p) print(p.pkgname) end) end end } subcmd.list = { desc = "Print all packages built from aports tree", usage = "", run = function() db:foreach(function (k) print(k) end) end } subcmd.recursdeps = { desc = "Recursively print all make dependencies for given packages", usage = "PKG...", run = function (opts) for i = 2, #opts do db:recurs_until(opts[i], function(pn) print(pn) end) end end } subcmd.builddirs = { desc = "Print the build dirs for given packages in build order", usage = "PKG...", run = function(opts) local i, p, _ local visited = {} local to_print = {} for i = 2, #opts do db:foreach_pkg(opts[i], function(_, p) to_print[p.dir] = true end) end for i = 2, #opts do db:recurs_until(opts[i], function(pn) local j,p db:foreach_pkg(pn, function(j, p) if to_print[p.dir] then print(p.dir) to_print[p.dir] = nil end end) end) end end } subcmd.sources = { desc = "List sources", usage = "PKG...", run = function(opts) local i, p, _ for i = 2, #opts do db:foreach_pkg(opts[i], function(_, p) aports.foreach_remote_source(p, function(url) print(p.pkgname, p.pkgver, string.gsub(url, p.pkgver, "$VERSION")) end) end) end end } function print_usage() io.write("usage: ap -d