summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-12-21 11:36:08 +0000
committerZac Medico <zmedico@gentoo.org>2007-12-21 11:36:08 +0000
commit63afcf175f3f6e15474dffaf77308c475d98141d (patch)
tree193d1178c543b21ec9fee7a0729d3d03672336d5
parent2ccf63bb40ed71fc28805f514636d8d473f3c50b (diff)
downloadportage-63afcf175f3f6e15474dffaf77308c475d98141d.tar.gz
portage-63afcf175f3f6e15474dffaf77308c475d98141d.tar.bz2
portage-63afcf175f3f6e15474dffaf77308c475d98141d.zip
Implement a `portageq contents <root> <category/package>` command
that lists all the files that are installed for a given package, with one file listed on each line. svn path=/main/trunk/; revision=9035
-rwxr-xr-xbin/portageq25
1 files changed, 25 insertions, 0 deletions
diff --git a/bin/portageq b/bin/portageq
index ea97c3e73..a29669a24 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -123,6 +123,31 @@ def metadata(argv):
metadata.uses_root = True
+def contents(argv):
+ """<root> <category/package>
+ List the files that are installed for a given package, with
+ one file listed on each line. All file names will begin with
+ <root>.
+ """
+ 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):
"""<root> [<filename>]+
Given a list of files, print the packages that own the files and which