summaryrefslogtreecommitdiffstats
path: root/pym/portage/data.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/data.py')
-rw-r--r--pym/portage/data.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/pym/portage/data.py b/pym/portage/data.py
index f17fd7326..a25b282ab 100644
--- a/pym/portage/data.py
+++ b/pym/portage/data.py
@@ -134,12 +134,24 @@ def _get_global(k):
pass
v = sorted(set(v))
+ # Avoid instantiating portage.settings when the desired
+ # variable is set in os.environ.
elif k == '_portage_grpname':
- env = getattr(portage, 'settings', os.environ)
- v = env.get('PORTAGE_GRPNAME', 'portage')
+ v = None
+ if 'PORTAGE_GRPNAME' in os.environ:
+ v = os.environ['PORTAGE_GRPNAME']
+ elif hasattr(portage, 'settings'):
+ v = portage.settings.get('PORTAGE_GRPNAME')
+ if v is None:
+ v = 'portage'
elif k == '_portage_username':
- env = getattr(portage, 'settings', os.environ)
- v = env.get('PORTAGE_USERNAME', 'portage')
+ v = None
+ if 'PORTAGE_USERNAME' in os.environ:
+ v = os.environ['PORTAGE_USERNAME']
+ elif hasattr(portage, 'settings'):
+ v = portage.settings.get('PORTAGE_USERNAME')
+ if v is None:
+ v = 'portage'
else:
raise AssertionError('unknown name: %s' % k)