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:
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 {