diff --git a/cli/main.go b/cli/main.go index 3f685e7fb..13ea7911d 100644 --- a/cli/main.go +++ b/cli/main.go @@ -24,6 +24,7 @@ import ( "os/signal" "path/filepath" "regexp" + "strings" "syscall" "time" @@ -73,13 +74,21 @@ func init() { if err != nil { fatal(errors.Wrap(err, "unable to get absolute bin path")) } - if err := os.Setenv("PATH", fmt.Sprintf("%s%s%s", os.Getenv("PATH"), os.PathListSeparator, path)); err != nil { + + if err := os.Setenv("PATH", appendPaths(os.Getenv("PATH"), path)); err != nil { panic(err) } // Seed random rand.Seed(time.Now().UnixNano()) } +func appendPaths(envPath string, path string) string { + if envPath == "" { + return path + } + return strings.Join([]string{envPath, path}, string(os.PathListSeparator)) +} + func isContextAgnosticCommand(cmd *cobra.Command) bool { if cmd == nil { return false diff --git a/cli/main_test.go b/cli/main_test.go index c151ce0d0..20426de3e 100644 --- a/cli/main_test.go +++ b/cli/main_test.go @@ -69,3 +69,8 @@ func TestCheckOwnCommand(t *testing.T) { assert.Assert(t, !isContextAgnosticCommand(cmd.LogsCommand())) assert.Assert(t, !isContextAgnosticCommand(cmd.PsCommand())) } + +func TestAppendPaths(t *testing.T) { + assert.Equal(t, appendPaths("", "/bin/path"), "/bin/path") + assert.Equal(t, appendPaths("path1", "binaryPath"), "path1"+string(os.PathListSeparator)+"binaryPath") +}