diff options
author | Felix Lange <fjl@twurst.com> | 2015-08-06 22:18:32 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2015-08-06 23:18:59 +0800 |
commit | eae1191904fd739cdffdd2903509a44a35c4c2f2 (patch) | |
tree | f10fc9132fabdeada3c8a0f4e2558f3d20c096af /cmd | |
parent | 78b101e15d4a92d9f0f1d9ca49e45d5699adb3d2 (diff) | |
download | dexon-eae1191904fd739cdffdd2903509a44a35c4c2f2.tar.gz dexon-eae1191904fd739cdffdd2903509a44a35c4c2f2.tar.zst dexon-eae1191904fd739cdffdd2903509a44a35c4c2f2.zip |
cmd/utils: fix path expansion on windows
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/utils/customflags.go | 9 | ||||
-rw-r--r-- | cmd/utils/customflags_test.go | 5 |
2 files changed, 4 insertions, 10 deletions
diff --git a/cmd/utils/customflags.go b/cmd/utils/customflags.go index e7efed4e3..4450065c1 100644 --- a/cmd/utils/customflags.go +++ b/cmd/utils/customflags.go @@ -21,7 +21,7 @@ import ( "fmt" "os" "os/user" - "path/filepath" + "path" "strings" "github.com/codegangsta/cli" @@ -138,11 +138,8 @@ func (self *DirectoryFlag) Set(value string) { func expandPath(p string) string { if strings.HasPrefix(p, "~/") || strings.HasPrefix(p, "~\\") { if user, err := user.Current(); err == nil { - if err == nil { - p = strings.Replace(p, "~", user.HomeDir, 1) - } + p = user.HomeDir + p[1:] } } - - return filepath.Clean(os.ExpandEnv(p)) + return path.Clean(os.ExpandEnv(p)) } diff --git a/cmd/utils/customflags_test.go b/cmd/utils/customflags_test.go index 0fb0af63b..de39ca36a 100644 --- a/cmd/utils/customflags_test.go +++ b/cmd/utils/customflags_test.go @@ -23,18 +23,15 @@ import ( ) func TestPathExpansion(t *testing.T) { - user, _ := user.Current() - tests := map[string]string{ "/home/someuser/tmp": "/home/someuser/tmp", "~/tmp": user.HomeDir + "/tmp", + "~thisOtherUser/b/": "~thisOtherUser/b", "$DDDXXX/a/b": "/tmp/a/b", "/a/b/": "/a/b", } - os.Setenv("DDDXXX", "/tmp") - for test, expected := range tests { got := expandPath(test) if got != expected { |