Skip to content

Commit

Permalink
Use bash from current environment
Browse files Browse the repository at this point in the history
Not all Unix platforms put their `bash` executable at `/bin/bash`,
for example on NixOS it may exist at `/run/current-system/sw/bin/bash`.

Instead of using `/bin/bash`, then, use `bash` alone,
and allow the [cmd package to resolve the correct path][cmd]
bashed on the user's current environment.

  [cmd]: https://golang.org/pkg/os/exec/#Command

Before:

```
$ forego start
forego  | starting web.1 on port 3000
forego  | Failed to start web.1: fork/exec /bin/bash: no such file or directory
forego  | starting worker.1 on port 3100
forego  | Failed to start worker.1: fork/exec /bin/bash: no such file or directory
```

After:

```
$ forego start
forego  | starting web.1 on port 3000
forego  | starting worker.1 on port 3100
web.1   | [26076] Started
```
  • Loading branch information
bernerdschaefer committed Feb 23, 2016
1 parent 4eaf541 commit c6e54ee
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func ShellInvocationCommand(interactive bool, root, command string) []string {
}
profile := filepath.Join(root, ".profile")
shellCommand := fmt.Sprintf("source \"%s\" 2>/dev/null; %s", profile, command)
return []string{"/bin/bash", shellArgument, shellCommand}
return []string{"bash", shellArgument, shellCommand}

}

Expand Down

0 comments on commit c6e54ee

Please sign in to comment.