diff options
author | Benjamin Schubert <bschubert15@bloomberg.net> | 2018-10-25 12:01:17 +0100 |
---|---|---|
committer | Benjamin Schubert <ben.c.schubert@gmail.com> | 2018-10-26 09:45:39 +0000 |
commit | 80762ecbfd61f85dfb43b1a25c060d78fd28f261 (patch) | |
tree | a8ff565ecbf288691b78b2ef161a1ee6f8fb1476 /buildstream | |
parent | 494d7018ec16f90bb917b3fe0cbbc4d8893febec (diff) | |
download | buildstream-80762ecbfd61f85dfb43b1a25c060d78fd28f261.tar.gz |
Check if command is a str and replace by list before checking existence
Currently we would make sure the sandbox had a command before
converting it to a list if it was given as a string. That meant that a string
command would never exist and the check be invalid.
This also adds the same logic in the dummy sandbox for consistency.
Diffstat (limited to 'buildstream')
-rw-r--r-- | buildstream/sandbox/_sandboxbwrap.py | 8 | ||||
-rw-r--r-- | buildstream/sandbox/_sandboxchroot.py | 8 | ||||
-rw-r--r-- | buildstream/sandbox/_sandboxdummy.py | 4 |
3 files changed, 12 insertions, 8 deletions
diff --git a/buildstream/sandbox/_sandboxbwrap.py b/buildstream/sandbox/_sandboxbwrap.py index fe429abe8..066932f5c 100644 --- a/buildstream/sandbox/_sandboxbwrap.py +++ b/buildstream/sandbox/_sandboxbwrap.py @@ -66,15 +66,15 @@ class SandboxBwrap(Sandbox): cwd = self._get_work_directory(cwd=cwd) env = self._get_environment(cwd=cwd, env=env) + # Convert single-string argument to a list + if isinstance(command, str): + command = [command] + if not self._has_command(command[0], env): raise SandboxError("Staged artifacts do not provide command " "'{}'".format(command[0]), reason='missing-command') - # We want command args as a list of strings - if isinstance(command, str): - command = [command] - # Create the mount map, this will tell us where # each mount point needs to be mounted from and to mount_map = MountMap(self, flags & SandboxFlags.ROOT_READ_ONLY) diff --git a/buildstream/sandbox/_sandboxchroot.py b/buildstream/sandbox/_sandboxchroot.py index aeba25137..e63a4f237 100644 --- a/buildstream/sandbox/_sandboxchroot.py +++ b/buildstream/sandbox/_sandboxchroot.py @@ -57,15 +57,15 @@ class SandboxChroot(Sandbox): cwd = self._get_work_directory(cwd=cwd) env = self._get_environment(cwd=cwd, env=env) + # Convert single-string argument to a list + if isinstance(command, str): + command = [command] + if not self._has_command(command[0], env): raise SandboxError("Staged artifacts do not provide command " "'{}'".format(command[0]), reason='missing-command') - # Command must be a list - if isinstance(command, str): - command = [command] - stdout, stderr = self._get_output() # Create the mount map, this will tell us where diff --git a/buildstream/sandbox/_sandboxdummy.py b/buildstream/sandbox/_sandboxdummy.py index 29ff4bf69..c0a86a0bb 100644 --- a/buildstream/sandbox/_sandboxdummy.py +++ b/buildstream/sandbox/_sandboxdummy.py @@ -33,6 +33,10 @@ class SandboxDummy(Sandbox): cwd = self._get_work_directory(cwd=cwd) env = self._get_environment(cwd=cwd, env=env) + # Convert single-string argument to a list + if isinstance(command, str): + command = [command] + if not self._has_command(command[0], env): raise SandboxError("Staged artifacts do not provide command " "'{}'".format(command[0]), |