[bin] add get_package_changes handy tool
This commit is contained in:
parent
9180367ae5
commit
5b276c268a
48
bin/get_package_changes
Executable file
48
bin/get_package_changes
Executable 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)
|
Loading…
Reference in New Issue
Block a user