From 22eaa08ddeaf387d1b742af3b05cc39624f593c6 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 24 Jun 2009 07:12:40 +0000 Subject: Add support to `portageq owners` for querying paths matching a given basename. It is natural to support this since the vartree already maintains a basename -> owner index anyway. There are plans for the packagekit backend is to support this type of search. svn path=/main/trunk/; revision=13681 --- pym/portage/dbapi/vartree.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 139259177..5b6f54a6a 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1527,7 +1527,12 @@ class vardbapi(dbapi): return x for path in path_iter: - name = os.path.basename(path.rstrip(os.path.sep)) + is_basename = os.sep != path[:1] + if is_basename: + name = path + else: + name = os.path.basename(path.rstrip(os.path.sep)) + if not name: continue @@ -1548,8 +1553,14 @@ class vardbapi(dbapi): if current_hash != hash_value: continue - if dblink(cpv).isowner(path, root): - yield dblink(cpv), path + + if is_basename: + for p in dblink(cpv).getcontents(): + if os.path.basename(p) == name: + yield dblink(cpv), p[len(root):] + else: + if dblink(cpv).isowner(path, root): + yield dblink(cpv), path class vartree(object): "this tree will scan a var/db/pkg database located at root (passed to init)" -- cgit v1.2.3-1-g7c22