#!/usr/bin/lua5.2 local lfs = require('lfs') -- subcommands ----------------------- local subcmd = {} subcmd.revdep = { desc = "Print reverse dependencies", usage = "PKG...", run = function(db, opts) for i = 1, #opts do for _, pkg in db:each_reverse_dependency(opts[i]) do print(pkg.pkgname) end end end } subcmd.list = { desc = "Print all packages built from aports tree", usage = "", run = function(db) for _,pn in db:each() do print(pn) end end } subcmd.recursdeps = { desc = "Recursively print all make dependencies for given packages", usage = "PKG...", run = function (db, opts) for i = 1, #opts do for dep in db:recursive_dependencies(opts[i]) do print(dep) end end end } subcmd.builddirs = { desc = "Print the build dirs for given packages in build order", usage = "PKG...", run = function(db, opts) for pkg in db:each_in_build_order(opts) do print(pkg.dir) end end } subcmd.sources = { desc = "List sources", usage = "PKG...", run = function(db, opts) for i = 1, #opts do for pkg in db:each_pkg_with_name(opts[i]) do for url in pkg:remote_sources() do print(pkg.pkgname, pkg.pkgver, string.gsub(url, pkg.pkgver, "$VERSION")) end end end end } subcmd["build-list"] = { desc = "List packages that can/should be rebuilt", usage = "", run = function(db) local nlist = {} for pkg in db:each_need_build() do table.insert(nlist, pkg.pkgname) end for pkg in db:each_in_build_order(nlist) do print(pkg.dir) end end } subcmd["apk-list"] = { desc = "List all apk files", usage = "", run = function(db) for pkg in db:each() do if pkg:relevant() then print(pkg:get_apk_file_name()) end end end } subcmd["dump-json"] = { desc = "Dump all abuilds from aports tree to JSON", run = function(db) local dump = require "aports.dump" print(dump.pkgs_to_json(db:each_aport())) end } local function print_usage() io.write("usage: ap -d