Merge pull request #438 from docker/fix-wsl2-azure-login

Fix azure login inside WSL2
This commit is contained in:
Djordje Lukic 2020-08-07 15:42:08 +02:00 committed by GitHub
commit 76cb9f3ad7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 7 deletions

View File

@ -30,6 +30,10 @@ import (
"github.com/pkg/errors"
)
var (
letterRunes = []rune("abcdefghijklmnopqrstuvwxyz123456789")
)
type apiHelper interface {
queryToken(data url.Values, tenantID string) (azureToken, error)
openAzureLoginPage(redirectURL string) error
@ -80,22 +84,30 @@ func (helper azureAPIHelper) queryToken(data url.Values, tenantID string) (azure
return token, nil
}
func openbrowser(url string) error {
func openbrowser(address string) error {
switch runtime.GOOS {
case "linux":
return exec.Command("xdg-open", url).Start()
if isWsl() {
return exec.Command("wslview", address).Start()
}
return exec.Command("xdg-open", address).Start()
case "windows":
return exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
return exec.Command("rundll32", "url.dll,FileProtocolHandler", address).Start()
case "darwin":
return exec.Command("open", url).Start()
return exec.Command("open", address).Start()
default:
return fmt.Errorf("unsupported platform")
}
}
var (
letterRunes = []rune("abcdefghijklmnopqrstuvwxyz123456789")
)
func isWsl() bool {
b, err := ioutil.ReadFile("/proc/version")
if err != nil {
return false
}
return strings.Contains(string(b), "microsoft")
}
func randomString(prefix string, length int) string {
b := make([]rune, length)