56 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package packages
 | 
						|
 | 
						|
import (
 | 
						|
	"go/build"
 | 
						|
	"path/filepath"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/pkg/result/processors"
 | 
						|
)
 | 
						|
 | 
						|
type Package struct {
 | 
						|
	bp *build.Package
 | 
						|
 | 
						|
	isFake bool
 | 
						|
	dir    string // dir != bp.dir only if isFake == true
 | 
						|
}
 | 
						|
 | 
						|
func (pkg *Package) Files(includeTest bool) []string {
 | 
						|
	var pkgFiles []string
 | 
						|
	for _, f := range pkg.bp.GoFiles {
 | 
						|
		if !processors.IsCgoFilename(f) {
 | 
						|
			// skip cgo at all levels to prevent failures on file reading
 | 
						|
			pkgFiles = append(pkgFiles, f)
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	// TODO: add cgo files
 | 
						|
	if includeTest {
 | 
						|
		pkgFiles = append(pkgFiles, pkg.TestFiles()...)
 | 
						|
	}
 | 
						|
 | 
						|
	for i, f := range pkgFiles {
 | 
						|
		pkgFiles[i] = filepath.Join(pkg.bp.Dir, f)
 | 
						|
	}
 | 
						|
 | 
						|
	return pkgFiles
 | 
						|
}
 | 
						|
 | 
						|
func (pkg *Package) Dir() string {
 | 
						|
	if pkg.dir != "" { // for fake packages
 | 
						|
		return pkg.dir
 | 
						|
	}
 | 
						|
 | 
						|
	return pkg.bp.Dir
 | 
						|
}
 | 
						|
 | 
						|
func (pkg *Package) IsTestOnly() bool {
 | 
						|
	return len(pkg.bp.GoFiles) == 0
 | 
						|
}
 | 
						|
 | 
						|
func (pkg *Package) TestFiles() []string {
 | 
						|
	var pkgFiles []string
 | 
						|
	pkgFiles = append(pkgFiles, pkg.bp.TestGoFiles...)
 | 
						|
	pkgFiles = append(pkgFiles, pkg.bp.XTestGoFiles...)
 | 
						|
	return pkgFiles
 | 
						|
}
 |