summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim MacArthur <jim.macarthur@codethink.co.uk>2018-05-08 16:27:45 +0100
committerJim MacArthur <jim.macarthur@codethink.co.uk>2018-08-01 13:07:33 +0100
commite69f2b233a76c664d04996c0a8a2651915a60d99 (patch)
tree8243703ac24def8e6eb9decc6c38a389d1168c87
parent4e6a9049ff2913ba812068ea91d962d1d39ea61a (diff)
downloadbuildstream-e69f2b233a76c664d04996c0a8a2651915a60d99.tar.gz
plugins/elements/stack.py: Convert to virtual directories
-rw-r--r--buildstream/plugins/elements/stack.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/buildstream/plugins/elements/stack.py b/buildstream/plugins/elements/stack.py
index 087d4dac0..138afedf7 100644
--- a/buildstream/plugins/elements/stack.py
+++ b/buildstream/plugins/elements/stack.py
@@ -24,13 +24,15 @@ Stack elements are simply a symbolic element used for representing
a logical group of elements.
"""
-import os
from buildstream import Element
# Element implementation for the 'stack' kind.
class StackElement(Element):
+ # This plugin has been modified to avoid the use of Sandbox.get_directory
+ BST_VIRTUAL_DIRECTORY = True
+
def configure(self, node):
pass
@@ -52,7 +54,7 @@ class StackElement(Element):
# Just create a dummy empty artifact, its existence is a statement
# that all this stack's dependencies are built.
- rootdir = sandbox.get_directory()
+ vrootdir = sandbox.get_virtual_directory()
# XXX FIXME: This is currently needed because the artifact
# cache wont let us commit an empty artifact.
@@ -61,10 +63,7 @@ class StackElement(Element):
# the actual artifact data in a subdirectory, then we
# will be able to store some additional state in the
# artifact cache, and we can also remove this hack.
- outputdir = os.path.join(rootdir, 'output', 'bst')
-
- # Ensure target directory parent
- os.makedirs(os.path.dirname(outputdir), exist_ok=True)
+ vrootdir.descend(['output', 'bst'], create=True)
# And we're done
return '/output'