github.com/blaisereilly/goreporter@v0.0.0-20240129165232-a6e9a46234bd/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  }