From 961c04cae992eadb42d286d2f85f8a675bdc68c8 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 29 Jan 2018 14:17:40 -0800 Subject: Upgrading server dependancies (#8154) --- .../mailru/easyjson/parser/parser_windows.go | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 vendor/github.com/mailru/easyjson/parser/parser_windows.go (limited to 'vendor/github.com/mailru/easyjson/parser/parser_windows.go') diff --git a/vendor/github.com/mailru/easyjson/parser/parser_windows.go b/vendor/github.com/mailru/easyjson/parser/parser_windows.go new file mode 100644 index 000000000..90d3a78b5 --- /dev/null +++ b/vendor/github.com/mailru/easyjson/parser/parser_windows.go @@ -0,0 +1,49 @@ +package parser + +import ( + "fmt" + "os" + "path" + "path/filepath" + "strings" +) + +func normalizePath(path string) string { + // use lower case, as Windows file systems will almost always be case insensitive + return strings.ToLower(strings.Replace(path, "\\", "/", -1)) +} + +func getPkgPath(fname string, isDir bool) (string, error) { + // path.IsAbs doesn't work properly on Windows; use filepath.IsAbs instead + if !filepath.IsAbs(fname) { + pwd, err := os.Getwd() + if err != nil { + return "", err + } + fname = path.Join(pwd, fname) + } + + fname = normalizePath(fname) + + gopath := os.Getenv("GOPATH") + if gopath == "" { + var err error + gopath, err = getDefaultGoPath() + if err != nil { + return "", fmt.Errorf("cannot determine GOPATH: %s", err) + } + } + + for _, p := range strings.Split(os.Getenv("GOPATH"), ";") { + prefix := path.Join(normalizePath(p), "src") + "/" + if rel := strings.TrimPrefix(fname, prefix); rel != fname { + if !isDir { + return path.Dir(rel), nil + } else { + return path.Clean(rel), nil + } + } + } + + return "", fmt.Errorf("file '%v' is not in GOPATH", fname) +} -- cgit v1.2.3-1-g7c22