forked from Mirrors/oauth2
oauth2/google: simplify the mechanism for overriding gcloud config location
Change-Id: I360fac6b13d11dda221beaa6b46ff386adfc2ec8 Reviewed-on: https://go-review.googlesource.com/4670 Reviewed-by: David Symonds <dsymonds@golang.org> Run-TryBot: David Symonds <dsymonds@golang.org>
This commit is contained in:
parent
864eccb6a0
commit
d838a7d6be
|
@ -6,6 +6,7 @@ package google
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
@ -137,23 +138,20 @@ func (c *SDKConfig) Scopes() []string {
|
||||||
return c.conf.Scopes
|
return c.conf.Scopes
|
||||||
}
|
}
|
||||||
|
|
||||||
func sdkConfigPath() (string, error) {
|
// sdkConfigPath tries to guess where the gcloud config is located.
|
||||||
|
// It can be overridden during tests.
|
||||||
|
var sdkConfigPath = func() (string, error) {
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
return filepath.Join(os.Getenv("APPDATA"), "gcloud"), nil
|
return filepath.Join(os.Getenv("APPDATA"), "gcloud"), nil
|
||||||
}
|
}
|
||||||
unixHomeDir = guessUnixHomeDir()
|
homeDir := guessUnixHomeDir()
|
||||||
if unixHomeDir == "" {
|
if homeDir == "" {
|
||||||
return "", fmt.Errorf("unable to get current user home directory: os/user lookup failed; $HOME is empty")
|
return "", errors.New("unable to get current user home directory: os/user lookup failed; $HOME is empty")
|
||||||
}
|
}
|
||||||
return filepath.Join(unixHomeDir, ".config", "gcloud"), nil
|
return filepath.Join(homeDir, ".config", "gcloud"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var unixHomeDir string
|
|
||||||
|
|
||||||
func guessUnixHomeDir() string {
|
func guessUnixHomeDir() string {
|
||||||
if unixHomeDir != "" {
|
|
||||||
return unixHomeDir
|
|
||||||
}
|
|
||||||
usr, err := user.Current()
|
usr, err := user.Current()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return usr.HomeDir
|
return usr.HomeDir
|
||||||
|
|
|
@ -7,7 +7,10 @@ package google
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
func TestSDKConfig(t *testing.T) {
|
func TestSDKConfig(t *testing.T) {
|
||||||
unixHomeDir = "testdata"
|
sdkConfigPath = func() (string, error) {
|
||||||
|
return "testdata/gcloud", nil
|
||||||
|
}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
account string
|
account string
|
||||||
accessToken string
|
accessToken string
|
||||||
|
|
Loading…
Reference in New Issue