From 6ce7f9c226c801464a08c89b906fbfab247e7744 Mon Sep 17 00:00:00 2001 From: Steve Streeting Date: Mon, 23 Feb 2015 12:55:57 +0000 Subject: [PATCH 1/2] SharedAuth: use os/user to locate home directory instead of HOME for better Windows compatibility --- aws/aws.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/aws/aws.go b/aws/aws.go index cfc42c03..fb23010d 100644 --- a/aws/aws.go +++ b/aws/aws.go @@ -15,6 +15,8 @@ import ( "fmt" "io/ioutil" "os" + "os/user" + "path/filepath" "github.com/vaughan0/go-ini" ) @@ -355,12 +357,14 @@ func SharedAuth() (auth Auth, err error) { var credentialsFile = os.Getenv("AWS_CREDENTIAL_FILE") if credentialsFile == "" { - var homeDir = os.Getenv("HOME") - if homeDir == "" { - err = errors.New("Could not get HOME") + // Don't hard-code HOME env var, on Windows it's USERPROFILE, HOME may not be defined + // Use os/user instead for platform consistency + usr, usrerr := user.Current() + if usrerr != nil { + err = errors.New("Could not get user home directory") return } - credentialsFile = homeDir + "/.aws/credentials" + credentialsFile = filepath.Join(usr.HomeDir, ".aws", "credentials") } file, err := ini.LoadFile(credentialsFile) From 50862215cba6cac32b27b53bf1513edd4e2ff313 Mon Sep 17 00:00:00 2001 From: Steve Streeting Date: Mon, 23 Feb 2015 16:41:48 +0000 Subject: [PATCH 2/2] Replaced os/user with mitchellh/go-homedir to avoid cgo depencency --- aws/aws.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aws/aws.go b/aws/aws.go index fb23010d..c2468351 100644 --- a/aws/aws.go +++ b/aws/aws.go @@ -15,9 +15,9 @@ import ( "fmt" "io/ioutil" "os" - "os/user" "path/filepath" + "github.com/mitchellh/go-homedir" "github.com/vaughan0/go-ini" ) @@ -359,12 +359,12 @@ func SharedAuth() (auth Auth, err error) { if credentialsFile == "" { // Don't hard-code HOME env var, on Windows it's USERPROFILE, HOME may not be defined // Use os/user instead for platform consistency - usr, usrerr := user.Current() - if usrerr != nil { + home, herr := homedir.Dir() + if herr != nil { err = errors.New("Could not get user home directory") return } - credentialsFile = filepath.Join(usr.HomeDir, ".aws", "credentials") + credentialsFile = filepath.Join(home, ".aws", "credentials") } file, err := ini.LoadFile(credentialsFile)