bitbake: Refactor the environment variable handling
Refactor the environment variable handling so that it more closes matches the changes that have been made in bitbake-dev. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5527 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
parent
9294b95174
commit
696d4f01d2
|
@ -113,15 +113,9 @@ Default BBFILES are the .bb files in the current directory.""" )
|
||||||
|
|
||||||
cooker = bb.cooker.BBCooker(configuration)
|
cooker = bb.cooker.BBCooker(configuration)
|
||||||
|
|
||||||
# Optionally clean up the environment
|
# Clear away any spurious environment variables. But don't wipe the
|
||||||
if 'BB_PRESERVE_ENV' not in os.environ:
|
# environment totally.
|
||||||
if 'BB_ENV_WHITELIST' in os.environ:
|
bb.utils.clean_environment()
|
||||||
good_vars = os.environ['BB_ENV_WHITELIST'].split()
|
|
||||||
else:
|
|
||||||
good_vars = bb.utils.preserved_envvars_list()
|
|
||||||
if 'BB_ENV_EXTRAWHITE' in os.environ:
|
|
||||||
good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split())
|
|
||||||
bb.utils.filter_environment(good_vars)
|
|
||||||
|
|
||||||
cooker.parseConfiguration()
|
cooker.parseConfiguration()
|
||||||
|
|
||||||
|
|
|
@ -596,6 +596,9 @@ class BBCooker:
|
||||||
build.
|
build.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Wipe the OS environment
|
||||||
|
bb.utils.empty_environment()
|
||||||
|
|
||||||
if self.configuration.show_environment:
|
if self.configuration.show_environment:
|
||||||
self.showEnvironment(self.configuration.buildfile, self.configuration.pkgs_to_build)
|
self.showEnvironment(self.configuration.buildfile, self.configuration.pkgs_to_build)
|
||||||
sys.exit( 0 )
|
sys.exit( 0 )
|
||||||
|
|
|
@ -331,8 +331,6 @@ def inheritFromOS(d):
|
||||||
setVar(s, os.environ[s], d)
|
setVar(s, os.environ[s], d)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
pass
|
pass
|
||||||
os.unsetenv(s)
|
|
||||||
del os.environ[s]
|
|
||||||
|
|
||||||
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
|
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
|
||||||
"""Emit a variable to be sourced by a shell."""
|
"""Emit a variable to be sourced by a shell."""
|
||||||
|
|
|
@ -354,6 +354,28 @@ def filter_environment(good_vars):
|
||||||
|
|
||||||
return removed_vars
|
return removed_vars
|
||||||
|
|
||||||
|
def clean_environment():
|
||||||
|
"""
|
||||||
|
Clean up any spurious environment variables. This will remove any
|
||||||
|
variables the user hasn't chose to preserve.
|
||||||
|
"""
|
||||||
|
if 'BB_PRESERVE_ENV' not in os.environ:
|
||||||
|
if 'BB_ENV_WHITELIST' in os.environ:
|
||||||
|
good_vars = os.environ['BB_ENV_WHITELIST'].split()
|
||||||
|
else:
|
||||||
|
good_vars = preserved_envvars_list()
|
||||||
|
if 'BB_ENV_EXTRAWHITE' in os.environ:
|
||||||
|
good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split())
|
||||||
|
filter_environment(good_vars)
|
||||||
|
|
||||||
|
def empty_environment():
|
||||||
|
"""
|
||||||
|
Remove all variables from the environment.
|
||||||
|
"""
|
||||||
|
for s in os.environ.keys():
|
||||||
|
os.unsetenv(s)
|
||||||
|
del os.environ[s]
|
||||||
|
|
||||||
def prunedir(topdir):
|
def prunedir(topdir):
|
||||||
# Delete everything reachable from the directory named in 'topdir'.
|
# Delete everything reachable from the directory named in 'topdir'.
|
||||||
# CAUTION: This is dangerous!
|
# CAUTION: This is dangerous!
|
||||||
|
|
Loading…
Reference in New Issue