Skip to content
This repository was archived by the owner on Jul 18, 2025. 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

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" git@github.com: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 <motonori@shin.do>
@mshindo
Copy link
Contributor Author

mshindo commented May 24, 2018 via email

@dgageot
Copy link
Contributor

dgageot commented Jun 4, 2018

LGTM

@dgageot dgageot merged commit 8941c31 into docker-archive-public: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
3 participants