From 394aa8f93747848ebd01f96f19b1d2ce867ee4a8 Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 09:05:17 +0800 Subject: [PATCH 1/6] support for more than one GOPATH --- main.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 00ff57b3..05828e4a 100644 --- a/main.go +++ b/main.go @@ -87,6 +87,25 @@ func parseEntry(line string) (Entry, error) { return Entry{}, errors.New("Invalid format: " + line) } +func split(r rune) bool { + if r == ':' { + return true + } + return false +} +func DetectionPath(gopath string) string { + path := os.Getenv(gopath) + arrPath := strings.FieldsFunc(path,split) + for _,content := range arrPath { + fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") + _, err1 := os.Stat(fullPath+"/") + if err1 == nil || os.IsExist(err1) { + return fullPath + } + } + panic("No File found in GOPATH") +} + func Load(path string) (*List, error) { file, err := os.Open(path) if err != nil { @@ -151,7 +170,7 @@ func ParseList(list *List, ref map[string]*List) (*ParsedList, error) { } func main() { - dir := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "v2ray", "domain-list-community", "data") + dir := DetectionPath("GOPATH") ref := make(map[string]*List) err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if err != nil { From f52020945dc2c20dc6fd1fb457ae550baebd13de Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 09:08:21 +0800 Subject: [PATCH 2/6] remove "/" --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 05828e4a..6f23a92c 100644 --- a/main.go +++ b/main.go @@ -98,7 +98,7 @@ func DetectionPath(gopath string) string { arrPath := strings.FieldsFunc(path,split) for _,content := range arrPath { fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") - _, err1 := os.Stat(fullPath+"/") + _, err1 := os.Stat(fullPath) if err1 == nil || os.IsExist(err1) { return fullPath } From b440b57fbfeaf6a436e484f0dfe8bd37a8f5da26 Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 09:09:44 +0800 Subject: [PATCH 3/6] err1 -> err --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 6f23a92c..5ed0d403 100644 --- a/main.go +++ b/main.go @@ -98,8 +98,8 @@ func DetectionPath(gopath string) string { arrPath := strings.FieldsFunc(path,split) for _,content := range arrPath { fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") - _, err1 := os.Stat(fullPath) - if err1 == nil || os.IsExist(err1) { + _, err := os.Stat(fullPath) + if err == nil || os.IsExist(err) { return fullPath } } From cc90b4ea108d4cc1b8b09edf69760c7554b02f20 Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 09:33:40 +0800 Subject: [PATCH 4/6] Go fmt --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 5ed0d403..29d52fd2 100644 --- a/main.go +++ b/main.go @@ -95,8 +95,8 @@ func split(r rune) bool { } func DetectionPath(gopath string) string { path := os.Getenv(gopath) - arrPath := strings.FieldsFunc(path,split) - for _,content := range arrPath { + arrPath := strings.FieldsFunc(path, split) + for _, content := range arrPath { fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") _, err := os.Stat(fullPath) if err == nil || os.IsExist(err) { From 200d0a4788ded7dc13c971fdade4de1fc273b5e4 Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 16:41:13 +0800 Subject: [PATCH 5/6] Follow VictoriaRaymond --- main.go | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 29d52fd2..1738c44f 100644 --- a/main.go +++ b/main.go @@ -87,23 +87,17 @@ func parseEntry(line string) (Entry, error) { return Entry{}, errors.New("Invalid format: " + line) } -func split(r rune) bool { - if r == ':' { - return true - } - return false -} -func DetectionPath(gopath string) string { - path := os.Getenv(gopath) - arrPath := strings.FieldsFunc(path, split) - for _, content := range arrPath { +func DetectPath(path string) string { + arrPath := strings.Split(path,":") + for _,content := range arrPath { fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") _, err := os.Stat(fullPath) if err == nil || os.IsExist(err) { return fullPath } } - panic("No File found in GOPATH") + fmt.Println("Failed: No file found in GOPATH") + return "" } func Load(path string) (*List, error) { @@ -170,7 +164,7 @@ func ParseList(list *List, ref map[string]*List) (*ParsedList, error) { } func main() { - dir := DetectionPath("GOPATH") + dir := DetectPath(os.Getenv("GOPATH")) ref := make(map[string]*List) err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if err != nil { From b1f09e11fcfb871751986edee72329456c05160a Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 17:19:48 +0800 Subject: [PATCH 6/6] Print error in function main --- main.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 1738c44f..ad709033 100644 --- a/main.go +++ b/main.go @@ -87,17 +87,17 @@ func parseEntry(line string) (Entry, error) { return Entry{}, errors.New("Invalid format: " + line) } -func DetectPath(path string) string { - arrPath := strings.Split(path,":") - for _,content := range arrPath { +func DetectPath(path string) (string, error) { + arrPath := strings.Split(path, string(filepath.ListSeparator)) + for _, content := range arrPath { fullPath := filepath.Join(content, "src", "github.com", "v2ray", "domain-list-community", "data") _, err := os.Stat(fullPath) if err == nil || os.IsExist(err) { - return fullPath + return fullPath, nil } } - fmt.Println("Failed: No file found in GOPATH") - return "" + err := errors.New("No file found in GOPATH") + return "", err } func Load(path string) (*List, error) { @@ -164,9 +164,13 @@ func ParseList(list *List, ref map[string]*List) (*ParsedList, error) { } func main() { - dir := DetectPath(os.Getenv("GOPATH")) + dir, err := DetectPath(os.Getenv("GOPATH")) + if err != nil { + fmt.Println("Failed: ", err) + return + } ref := make(map[string]*List) - err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { + err = filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if err != nil { return err }