diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-10-25 01:59:39 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-10-25 01:59:39 -0700 |
commit | a715b65f7bd36409c1283e6911265d1f4405ab7a (patch) | |
tree | f3ad709ca1495be750163ced02fe11562566f910 /bin/portageq | |
parent | 25aaf3e69b8ef0e9a21d0d74a9b7b690b76675cd (diff) | |
download | portage-a715b65f7bd36409c1283e6911265d1f4405ab7a.tar.gz portage-a715b65f7bd36409c1283e6911265d1f4405ab7a.tar.bz2 portage-a715b65f7bd36409c1283e6911265d1f4405ab7a.zip |
Use EROOT instead of ROOT for keys everywhere.
It makes more sense to use EROOT instead of ROOT for keys in mappings
like portage.db, since it allows for multiple prefixes to exist
simultaneously within the same map without having a key collision.
This affects all portageq commands which take a <root> parameter, since
that parameter now corresponds to EROOT instead of ROOT. None of this
makes any difference for non-prefix users, since EROOT and ROOT are
identical when EPREFIX is empty.
Diffstat (limited to 'bin/portageq')
-rwxr-xr-x | bin/portageq | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/bin/portageq b/bin/portageq index eaeca60d9..02f19040c 100755 --- a/bin/portageq +++ b/bin/portageq @@ -185,7 +185,7 @@ def metadata(argv): print("ERROR: insufficient parameters!", file=sys.stderr) sys.exit(2) - root, pkgtype, pkgspec = argv[0:3] + eroot, pkgtype, pkgspec = argv[0:3] metakeys = argv[3:] type_map = { "ebuild":"porttree", @@ -195,10 +195,8 @@ def metadata(argv): print("Unrecognized package type: '%s'" % pkgtype, file=sys.stderr) sys.exit(1) trees = portage.db - if os.path.realpath(root) == os.path.realpath(portage.settings["ROOT"]): - root = portage.settings["ROOT"] # contains the normalized $ROOT try: - values = trees[root][type_map[pkgtype]].dbapi.aux_get( + values = trees[eroot][type_map[pkgtype]].dbapi.aux_get( pkgspec, metakeys) writemsg_stdout(''.join('%s\n' % x for x in values), noiselevel=-1) except KeyError: @@ -250,9 +248,9 @@ def owners(argv): return 2 from portage import catsplit, dblink - settings = portage.settings - root = settings["ROOT"] - vardb = portage.db[root]["vartree"].dbapi + eroot = argv[0] + vardb = portage.db[eroot]["vartree"].dbapi + root = portage.settings['ROOT'] cwd = None try: @@ -451,7 +449,8 @@ def best_visible(argv): noiselevel=-1) return 2 - db = portage.db[portage.settings["ROOT"]][type_map[pkgtype]].dbapi + eroot = argv[0] + db = portage.db[eroot][type_map[pkgtype]].dbapi try: atom = portage.dep_expand(atom, mydb=db, settings=portage.settings) @@ -461,7 +460,7 @@ def best_visible(argv): return 2 root_config = RootConfig(portage.settings, - portage.db[portage.settings["ROOT"]], None) + portage.db[eroot], None) if hasattr(db, "xmatch"): cpv_list = db.xmatch("match-all-cpv-only", atom) @@ -839,7 +838,13 @@ def main(): sys.stderr.write("Run portageq with --help for info\n") sys.stderr.flush() sys.exit(os.EX_USAGE) - os.environ["ROOT"] = sys.argv[2] + eprefix = os.environ.get("__PORTAGE_TEST_EPREFIX") + eroot = portage.util.normalize_path(sys.argv[2]) + if eprefix: + root = eroot[:1-len(eprefix)] + else: + root = eroot + os.environ["ROOT"] = root args = sys.argv[2:] if args and sys.hexversion < 0x3000000 and not isinstance(args[0], unicode): @@ -848,7 +853,7 @@ def main(): try: if uses_root: - args[0] = portage.settings["ROOT"] + args[0] = portage.settings['EROOT'] retval = function(args) if retval: sys.exit(retval) |