diff --git a/environment.go b/environment.go index 10b5f2611663..f6745c2bfdcc 100755 --- a/environment.go +++ b/environment.go @@ -22,7 +22,7 @@ type environmentInfo interface { hasFolder(folder string) bool getFileContent(file string) string getPathSeperator() string - getCurrentUser() (*user.User, error) + getCurrentUser() string isRunningAsRoot() bool getHostName() (string, error) getRuntimeGOOS() string @@ -101,8 +101,12 @@ func (env *environment) getPathSeperator() string { return string(os.PathSeparator) } -func (env *environment) getCurrentUser() (*user.User, error) { - return user.Current() +func (env *environment) getCurrentUser() string { + user := os.Getenv("USER") + if user == "" { + user = os.Getenv("USERNAME") + } + return user } func (env *environment) getHostName() (string, error) { diff --git a/segment_path_test.go b/segment_path_test.go index efd0d1456b6c..60e6098c1340 100755 --- a/segment_path_test.go +++ b/segment_path_test.go @@ -2,7 +2,6 @@ package main import ( "math/rand" - "os/user" "testing" "github.com/distatus/battery" @@ -49,9 +48,9 @@ func (env *MockedEnvironment) getPathSeperator() string { return args.String(0) } -func (env *MockedEnvironment) getCurrentUser() (*user.User, error) { +func (env *MockedEnvironment) getCurrentUser() string { args := env.Called(nil) - return args.Get(0).(*user.User), args.Error(1) + return args.String(0) } func (env *MockedEnvironment) getHostName() (string, error) { diff --git a/segment_session.go b/segment_session.go index f3fc387020b2..8f459c0d1ade 100755 --- a/segment_session.go +++ b/segment_session.go @@ -61,11 +61,8 @@ func (s *session) getUserName() string { if !s.props.getBool(DisplayUser, true) { return "" } - user, err := s.env.getCurrentUser() - if err != nil { - return "unknown" - } - username := strings.TrimSpace(user.Username) + user := s.env.getCurrentUser() + username := strings.TrimSpace(user) if s.env.getRuntimeGOOS() == "windows" && strings.Contains(username, "\\") { username = strings.Split(username, "\\")[1] } diff --git a/segment_session_test.go b/segment_session_test.go index bf6423f92051..32d55ab4eb15 100755 --- a/segment_session_test.go +++ b/segment_session_test.go @@ -1,7 +1,6 @@ package main import ( - "os/user" "testing" "github.com/stretchr/testify/assert" @@ -9,10 +8,7 @@ import ( func setupSession(userInfoSeparator string, username string, hostname string, goos string) session { env := new(MockedEnvironment) - user := user.User{ - Username: username, - } - env.On("getCurrentUser", nil).Return(&user, nil) + env.On("getCurrentUser", nil).Return(username) env.On("getHostName", nil).Return(hostname, nil) env.On("getRuntimeGOOS", nil).Return(goos) props := &properties{ @@ -61,3 +57,10 @@ func TestWriteOnlyHostname(t *testing.T) { got := s.getFormattedText() assert.EqualValues(t, want, got) } + +func TestSession(t *testing.T) { + s := &session{ + env: &environment{}, + } + assert.NotEmpty(t, s.getUserName()) +}