diff options
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r-- | bitbake/lib/bb/utils.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index e6e82d1118..70634910f7 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -1681,3 +1681,19 @@ def rename(src, dst): | |||
1681 | shutil.move(src, dst) | 1681 | shutil.move(src, dst) |
1682 | else: | 1682 | else: |
1683 | raise err | 1683 | raise err |
1684 | |||
1685 | @contextmanager | ||
1686 | def environment(**envvars): | ||
1687 | """ | ||
1688 | Context manager to selectively update the environment with the specified mapping. | ||
1689 | """ | ||
1690 | backup = dict(os.environ) | ||
1691 | try: | ||
1692 | os.environ.update(envvars) | ||
1693 | yield | ||
1694 | finally: | ||
1695 | for var in envvars: | ||
1696 | if var in backup: | ||
1697 | os.environ[var] = backup[var] | ||
1698 | else: | ||
1699 | del os.environ[var] | ||