diff options
Diffstat (limited to 'buildstream/scriptelement.py')
-rw-r--r-- | buildstream/scriptelement.py | 15 |
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): |