From 5372d23d1250c2b2feb82716d74c5d0e3be75aa0 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Thu, 11 Aug 2011 16:21:20 +0200 Subject: [PATCH] [bin] add client version of get_package_changes --- bin/get_package_changes_client | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 bin/get_package_changes_client diff --git a/bin/get_package_changes_client b/bin/get_package_changes_client new file mode 100755 index 0000000..5451e4c --- /dev/null +++ b/bin/get_package_changes_client @@ -0,0 +1,49 @@ +#!/usr/bin/python2 +import sys + +from entropy.client.interfaces import Client +from entropy.const import etpUi +etpUi['quiet'] = True +import entropy.dep +import portage + +def print_help(): + sys.stderr.write("get_package_changes \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) + + client = Client() + repositories = client.repositories() + pkg_keys = set() + + for repository_id in repositories: + repo = client.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() + client.shutdown() + raise SystemExit(0) +