Issue #1867 improve detectShell for windows

newer versions of git bash use mintty which doesn't set TERM=cygwin but
does set SHELL appropriately. Allow for SHELL to be detected on windows
and only output the message if its not.

Signed-off-by: Donovan Jimenez <donovan.jimenez@gmail.com>
This commit is contained in:
Donovan Jimenez 2015-09-17 14:56:46 -04:00
parent 993b5f557f
commit 1dfca96c69
1 changed files with 5 additions and 8 deletions

View File

@ -659,19 +659,16 @@ func getCertPathInfo(c *cli.Context) libmachine.CertPathInfo {
}
func detectShell() (string, error) {
// check for windows env and not bash (i.e. msysgit, etc)
// the SHELL env var is not set for processes in msysgit; we check
// for TERM instead
if runtime.GOOS == "windows" && os.Getenv("TERM") != "cygwin" {
log.Printf("On Windows, please specify either 'cmd' or 'powershell' with the --shell flag.\n\n")
return "", ErrUnknownShell
}
// attempt to get the SHELL env var
shell := filepath.Base(os.Getenv("SHELL"))
log.Debugf("shell: %s", shell)
if shell == "" {
// check for windows env and not bash (i.e. msysgit, etc)
if runtime.GOOS == "windows" {
log.Printf("On Windows, please specify either 'cmd' or 'powershell' with the --shell flag.\n\n")
}
return "", ErrUnknownShell
}