aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2020-09-28 17:18:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-28 17:29:46 +0100
commit6c601e68a27e1c60b04c2a61830d1812cc883e09 (patch)
treeeb2262efbf725506ae9c176677759f3bc85ef799
parent14a35f273b579d5cd5fd92765b89c28f870dd577 (diff)
downloadbitbake-contrib-6c601e68a27e1c60b04c2a61830d1812cc883e09.tar.gz
utils: add umask changing context manager
Add a umask context manager which can be used to temporarily change the umask in a 'with' block. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/utils.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 0b79f92e2..f73d31fb7 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -944,6 +944,17 @@ def which(path, item, direction = 0, history = False, executable=False):
return "", hist
return ""
+@contextmanager
+def umask(new_mask):
+ """
+ Context manager to set the umask to a specific mask, and restore it afterwards.
+ """
+ current_mask = os.umask(new_mask)
+ try:
+ yield
+ finally:
+ os.umask(current_mask)
+
def to_boolean(string, default=None):
if not string:
return default