summaryrefslogtreecommitdiff
path: root/buildstream
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream')
-rw-r--r--buildstream/source.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/buildstream/source.py b/buildstream/source.py
index 63d8ffafd..bfea143ae 100644
--- a/buildstream/source.py
+++ b/buildstream/source.py
@@ -306,7 +306,13 @@ class Source(Plugin):
def _ensure_directory(self, directory):
if self.__directory is not None:
directory = os.path.join(directory, self.__directory.lstrip(os.sep))
- os.makedirs(directory, exist_ok=True)
+
+ try:
+ os.makedirs(directory, exist_ok=True)
+ except OSError as e:
+ raise SourceError("Failed to create staging directory: {}"
+ .format(e),
+ reason="ensure-stage-dir-fail") from e
return directory
# Wrapper for stage() api which gives the source