From 394aa8f93747848ebd01f96f19b1d2ce867ee4a8 Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Thu, 23 Aug 2018 09:05:17 +0800 Subject: [PATCH] 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 {