From 1bf28a9631fbf18bab6ff80d6986a858bfb62d6d Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 21 Dec 2007 11:53:43 +0000 Subject: [PATCH] Implement a `portageq contents ` command that lists all the files that are installed for a given package, with one file listed on each line. (trunk r9035) svn path=/main/branches/2.1.2/; revision=9037 --- bin/portageq | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/bin/portageq b/bin/portageq index 8ffac0b75..fb5decc45 100755 --- a/bin/portageq +++ b/bin/portageq @@ -124,6 +124,31 @@ def metadata(argv): metadata.uses_root = True +def contents(argv): + """ + List the files that are installed for a given package, with + one file listed on each line. All file names will begin with + . + """ + if len(argv) != 2: + print "ERROR: expected 2 parameters, got %d!" % len(argv) + return 2 + + root, cpv = argv + vartree = portage.db[root]["vartree"] + if not vartree.dbapi.cpv_exists(cpv): + sys.stderr.write("Package not found: '%s'\n" % cpv) + return 1 + cat, pkg = portage.catsplit(cpv) + db = portage.dblink(cat, pkg, root, vartree.settings, + treetype="vartree", vartree=vartree) + file_list = db.getcontents().keys() + file_list.sort() + for f in file_list: + sys.stdout.write("%s\n" % f) + sys.stdout.flush() +contents.uses_root = True + def owners(argv): """ []+ Given a list of files, print the packages that own the files and which -- 2.26.2