github.com/serversong/goreporter@v0.0.0-20200325104552-3cfaf44fd178/linters/interfacer/interfacer.go (about) 1 package interfacer 2 3 import ( 4 "log" 5 "os" 6 "path/filepath" 7 "strings" 8 ) 9 10 func Interfacer(packagesPath map[string]string) []string { 11 packages := make([]string, 0) 12 for _, v := range packagesPath { 13 v = absPath(v) 14 srcIndex := strings.Index(v, "src") 15 if srcIndex >= 0 && (srcIndex+4) < len(v) { 16 packages = append(packages, v[(srcIndex+4):]) 17 } 18 } 19 lines, err := CheckArgs(packages) 20 if err != nil { 21 l := log.New(os.Stderr, "", log.LstdFlags) 22 l.Println(err) 23 } 24 return lines 25 } 26 27 // absPath is a function that will get absolute path of file. 28 func absPath(path string) string { 29 absPath, err := filepath.Abs(path) 30 if err != nil { 31 log.Println(err) 32 return path 33 } 34 return absPath 35 }