gojay

high performance JSON encoder/decoder with stream API for Golang
git clone git://git.lair.cx/gojay
Log | Files | Refs | README | LICENSE

commit 837a255e5a66252a880942ba5d86b9989dfa175a
parent 09411f82886043420aaff2162e767cd00be3e765
Author: francoispqt <francois@parquet.ninja>
Date:   Sun, 24 Jun 2018 01:25:22 +0800

better handling of path from command line

Diffstat:
Mgojay/main.go | 22++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/gojay/main.go b/gojay/main.go @@ -23,6 +23,17 @@ func hasAnnotation(fP string) bool { return strings.Contains(string(b), gojayAnnotation) } +func resolvePath(p string) (string, error) { + if _, err := os.Stat(p); err != nil { + if os.IsNotExist(err) { + return filepath.Abs(os.Getenv("GOPATH") + "/src/" + *src) + } else { + return "", err + } + } + return p, nil +} + // getPath returns either the path given as argument or current working directory func getPath() (string, error) { var err error @@ -32,18 +43,13 @@ func getPath() (string, error) { if err != nil { return "", err } - if _, err := os.Stat(p); err != nil { - if os.IsNotExist(err) { - return filepath.Abs(os.Getenv("GOPATH") + "/src/" + *src) - } else { - return "", err - } - } + return resolvePath(p) } else if len(os.Args) > 1 { // else if there is a command line arg, use it as path to a package $GOPATH/src/os.Args[1] - p, err = filepath.Abs(os.Getenv("GOPATH") + "/src/" + os.Args[1]) + p, err = filepath.Abs(os.Args[1]) if err != nil { return "", err } + return resolvePath(p) } else { p, err = os.Getwd() if err != nil {