Skip to content
This repository has been archived by the owner on Sep 26, 2021. It is now read-only.

The parentheses are needed for the shell commands to be executed properly. #4491

Merged
merged 1 commit into from
Jun 4, 2018
Merged

The parentheses are needed for the shell commands to be executed properly. #4491

merged 1 commit into from
Jun 4, 2018

Conversation

mshindo
Copy link
Contributor

@mshindo mshindo commented May 24, 2018

If the shell command looks like

"condition1 && command1 || condition2 && command2 || command3"

then condition2 will never be checked if condition1 is true and command1
exists normally. In order for this code to run expectedly, it should look
like

"(condition1 && command1) || (condition2 && command2) || command3"

instead.

Specifically, with the code like

"[ ! -d /Users ]&& sudo mkdir /Users; sudo mount --bind /mnt/hgfs/Users /Users || [ -f /usr/local/bin/vmhgfs-fuse ]&& sudo /usr/local/bin/vmhgfs-fuse -o allow_other .host:/Users /Users || sudo mount -t vmhgfs -o uid=$(id -u),gid=$(id -g) .host:/Users /Users"

if both "[ ! -d /Users ]" and "sudo mkdir /Users; sudo mount --bind
/mnt/hgfs/Users /Users" are true, then the existence of a file
/usr/local/bin/vmhgfs-fuse will never be examined and always be executed
even if the file doesn't exist. Consequently, it always fails.

@GordonTheTurtle
Copy link

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:

$ git clone -b "fusion-driver-fix" [email protected]:mshindo/machine.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

…rly.

If the shell command looks like

  "condition1 && command1 || condition2 && command2 || command3"

then condition2 will never be checked if condition1 is true and command1
exists normally. In order for this code to run expectedly, it should look
like

  "(condition1 && command1) || (condition2 && command2) || command3"

instead.

Specifically, with the code like

  "[ ! -d /Users ]&& sudo mkdir /Users; sudo mount --bind /mnt/hgfs/Users /Users || [ -f /usr/local/bin/vmhgfs-fuse ]&& sudo /usr/local/bin/vmhgfs-fuse -o allow_other .host:/Users /Users || sudo mount -t vmhgfs -o uid=$(id -u),gid=$(id -g) .host:/Users /Users"

if both "[ ! -d /Users ]" and "sudo mkdir /Users; sudo mount --bind
/mnt/hgfs/Users /Users" are true, then the existence of a file
/usr/local/bin/vmhgfs-fuse will never be examined and always be executed
even if the file doesn't exist. Consequently, it always fails.

Signed-off-by: Motonori Shindo <[email protected]>
@mshindo
Copy link
Contributor Author

mshindo commented May 24, 2018 via email

@dgageot
Copy link
Member

dgageot commented Jun 4, 2018

LGTM

@dgageot dgageot merged commit 8941c31 into docker:master Jun 4, 2018
@mshindo mshindo deleted the fusion-driver-fix branch July 23, 2018 02:19
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants