summaryrefslogtreecommitdiff
path: root/buildstream/scriptelement.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/scriptelement.py')
-rw-r--r--buildstream/scriptelement.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/buildstream/scriptelement.py b/buildstream/scriptelement.py
index 3a5d914d0..e9ad60c37 100644
--- a/buildstream/scriptelement.py
+++ b/buildstream/scriptelement.py
@@ -201,16 +201,17 @@ class ScriptElement(Element):
# Setup environment
sandbox.set_environment(self.get_environment())
+ # Tell the sandbox to mount the install root
+ directories = {'/': False}
+
# Mark the artifact directories in the layout
for item in self.__layout:
- if item['destination'] != '/':
- if item['element']:
- sandbox.mark_directory(item['destination'], artifact=True)
- else:
- sandbox.mark_directory(item['destination'])
+ destination = item['destination']
+ was_artifact = directories.get(destination, False)
+ directories[destination] = item['element'] or was_artifact
- # Tell the sandbox to mount the install root
- sandbox.mark_directory(self.__install_root)
+ for directory, artifact in directories.items():
+ sandbox.mark_directory(directory, artifact=artifact)
def stage(self, sandbox):