diff --git a/commands/commands.go b/commands/commands.go index 906e79ae1f..bcfc9aeb15 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -652,14 +652,18 @@ func getCertPathInfo(c *cli.Context) libmachine.CertPathInfo { } func detectShell() (string, error) { - // attempt to get the SHELL env var - shell := filepath.Base(os.Getenv("SHELL")) - // none detected; check for windows env and not bash (i.e. msysgit, etc) - if runtime.GOOS == "windows" && shell == "" { + // 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 == "" { return "", ErrUnknownShell }