#!/usr/bin/lua5.2 --[[ Copyright (c) 2015 Natanael Copa This content is released under the MIT License. --]] upstream_providers = { (require("upstream.mate")), (require("upstream.gnome")), (require("upstream.github")), (require("upstream.archlinux")), } maintainer = {} io.stderr:write("Reading aports...\n") db = require("aports.db").new("~/aports", { "main", "community" }) rev = {} for p in db:each_aport() do local upstream_pkg = nil local newver = nil for _,provider in pairs(upstream_providers) do upstream_pkg = provider.init(p) if upstream_pkg then newver = upstream_pkg:find_newer() break end end if newver ~= nil then local m = p:get_maintainer() local t = { ["name"] = p.pkgname, ["current"] = p.pkgver, ["new"] = newver, ["upstream"] = upstream_pkg.provider_name, } rev[p.dir] = t -- print("DEBUG: maintainer:", m, p.pkgname) if maintainer[m] == nil then maintainer[m] = {} end table.insert(maintainer[m], p.pkgname) end end print(os.date()) for m, pkgs in pairs(maintainer) do if m == nil or m == "" then m = "(unmaintained)" end print("==== "..m.." ====") for pkg in db:each_in_build_order(pkgs) do p = rev[pkg.dir] if not p then print("no rev["..pkg.dir.."]") else print(string.format("%-40s(current: %s) %s", p.name.."-"..p.new, p.current, p.upstream)) end end print() end