diff options
Diffstat (limited to 'src/buildstream/storage')
-rw-r--r-- | src/buildstream/storage/_filebaseddirectory.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/buildstream/storage/_filebaseddirectory.py b/src/buildstream/storage/_filebaseddirectory.py index 53a87b64c..1500dd78e 100644 --- a/src/buildstream/storage/_filebaseddirectory.py +++ b/src/buildstream/storage/_filebaseddirectory.py @@ -256,10 +256,15 @@ class FileBasedDirectory(Directory): if mode not in ["r", "rb", "w", "wb", "x", "xb"]: raise ValueError("Unsupported mode: `{}`".format(mode)) + if "b" in mode: + encoding = None + else: + encoding = "utf-8" + if "r" in mode: - return open(newpath, mode=mode, encoding="utf-8") + return open(newpath, mode=mode, encoding=encoding) else: - return utils.save_file_atomic(newpath, mode=mode, encoding="utf-8") + return utils.save_file_atomic(newpath, mode=mode, encoding=encoding) def __str__(self): # This returns the whole path (since we don't know where the directory started) |