summaryrefslogtreecommitdiff
path: root/src/buildstream/sandbox
diff options
context:
space:
mode:
authorWilliam Salmon <will.salmon@codethink.co.uk>2019-05-21 13:33:25 +0100
committerWilliam Salmon <will.salmon@codethink.co.uk>2019-07-25 13:57:18 +0100
commit2f52b19ebc18fcefe70c8c04037b735b95c7bcf9 (patch)
tree978a52c61ec982a39dd650b12f12802671507ed5 /src/buildstream/sandbox
parent455323471868f653b0a305b9dc7d2a2dde2b9753 (diff)
downloadbuildstream-2f52b19ebc18fcefe70c8c04037b735b95c7bcf9.tar.gz
Update sandbox to use virtual directories
Diffstat (limited to 'src/buildstream/sandbox')
-rw-r--r--src/buildstream/sandbox/sandbox.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/buildstream/sandbox/sandbox.py b/src/buildstream/sandbox/sandbox.py
index 4cab7d6b8..3229b2dc6 100644
--- a/src/buildstream/sandbox/sandbox.py
+++ b/src/buildstream/sandbox/sandbox.py
@@ -548,13 +548,17 @@ class Sandbox():
# Returns:
# (bool): Whether a command exists inside the sandbox.
def _has_command(self, command, env=None):
+ vroot = self.get_virtual_directory()
+ command_as_parts = command.lstrip(os.sep).split(os.sep)
if os.path.isabs(command):
- return os.path.lexists(os.path.join(
- self._root, command.lstrip(os.sep)))
+ return vroot._exists(*command_as_parts, follow_symlinks=True)
+
+ if len(command_as_parts) > 1:
+ return False
for path in env.get('PATH').split(':'):
- if os.path.lexists(os.path.join(
- self._root, path.lstrip(os.sep), command)):
+ path_as_parts = path.lstrip(os.sep).split(os.sep)
+ if vroot._exists(*path_as_parts, command, follow_symlinks=True):
return True
return False