First import the main portage module without legacy globals since it
authorZac Medico <zmedico@gentoo.org>
Tue, 11 Dec 2007 23:09:09 +0000 (23:09 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 11 Dec 2007 23:09:09 +0000 (23:09 -0000)
is almost certain to succeed in that case. This provides access to
the portage.exception namespace which is needed for later exception
handling, like if portage.exception.PermissionDenied is raised when
constructing the legacy global config instance.

svn path=/main/trunk/; revision=8882

bin/portageq

index eb0421e8ba777ecbf357d64a5aa9334f2dab60fd..0b7eab6fef9542a65d42155de4519f16d9d4328e 100755 (executable)
@@ -434,10 +434,19 @@ def main():
                        sys.stderr.flush()
                        sys.exit(os.EX_USAGE)
                os.environ["ROOT"] = sys.argv[2]
+
+       # First import the main portage module without legacy globals since it
+       # is almost certain to succeed in that case. This provides access to
+       # the portage.exception namespace which is needed for later exception
+       # handling, like if portage.exception.PermissionDenied is raised when
+       # constructing the legacy global config instance.
+       os.environ["PORTAGE_LEGACY_GLOBALS"] = "false"
+       import portage
+       del os.environ["PORTAGE_LEGACY_GLOBALS"]
        try:
                global portage
                try:
-                       import portage
+                       reload(portage)
                except ImportError:
                        from os import path as osp
                        sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))