summaryrefslogtreecommitdiff
path: root/src/buildstream/storage/_filebaseddirectory.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildstream/storage/_filebaseddirectory.py')
-rw-r--r--src/buildstream/storage/_filebaseddirectory.py9
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)