[bin] add get_package_changes handy tool

This commit is contained in:
Fabio Erculiani 2011-07-27 08:47:43 +02:00
parent 9180367ae5
commit 5b276c268a

48
bin/get_package_changes Executable file
View File

@ -0,0 +1,48 @@
#!/usr/bin/python2
import sys
from entropy.server.interfaces import Server
from entropy.const import etpUi
etpUi['quiet'] = True
import entropy.dep
import portage
def print_help():
sys.stderr.write("get_package_changes <added|removed>\n")
if __name__ == "__main__":
args = sys.argv[1:]
if not args:
print_help()
raise SystemExit(1)
cmd = args.pop(0)
if cmd not in ("added", "removed"):
print_help()
raise SystemExit(1)
srv = Server()
repositories = srv.repositories()
pkg_keys = set()
for repository_id in repositories:
repo = srv.open_repository(repository_id)
for atom, package_id, branch in repo.listAllPackages():
pkg_keys.add(entropy.dep.dep_getkey(atom))
portdb = portage.db["/"]['porttree']
portage_pkg_keys = set(portdb.getallnodes())
if cmd == "added":
added = sorted(portage_pkg_keys - pkg_keys)
for pkg_key in added:
sys.stdout.write(pkg_key + "\n")
sys.stdout.flush()
elif cmd == "removed":
removed = sorted(pkg_keys - portage_pkg_keys)
for pkg_key in removed:
sys.stdout.write(pkg_key + "\n")
sys.stdout.flush()
srv.shutdown()
raise SystemExit(0)