mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add gitea-vet (#10948)
* Add copyright Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add gitea-vet and fix non-compliance Signed-off-by: jolheiser <john.olheiser@gmail.com> * Combine tools.go into build.go and clean up Signed-off-by: jolheiser <john.olheiser@gmail.com> * Remove extra GO111MODULE=on Signed-off-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
		
							
								
								
									
										5
									
								
								vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -76,8 +76,9 @@ func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) e
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func parseDirEnt(buf []byte) (consumed int, name string, typ os.FileMode) {
 | 
			
		||||
	// golang.org/issue/15653
 | 
			
		||||
	dirent := (*syscall.Dirent)(unsafe.Pointer(&buf[0]))
 | 
			
		||||
	// golang.org/issue/37269
 | 
			
		||||
	dirent := &syscall.Dirent{}
 | 
			
		||||
	copy((*[unsafe.Sizeof(syscall.Dirent{})]byte)(unsafe.Pointer(dirent))[:], buf)
 | 
			
		||||
	if v := unsafe.Offsetof(dirent.Reclen) + unsafe.Sizeof(dirent.Reclen); uintptr(len(buf)) < v {
 | 
			
		||||
		panic(fmt.Sprintf("buf size of %d smaller than dirent header size %d", len(buf), v))
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								vendor/golang.org/x/tools/internal/gocommand/invoke.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								vendor/golang.org/x/tools/internal/gocommand/invoke.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,6 +5,7 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/exec"
 | 
			
		||||
	"strings"
 | 
			
		||||
@@ -28,9 +29,27 @@ func (i *Invocation) Run(ctx context.Context) (*bytes.Buffer, error) {
 | 
			
		||||
	return stdout, friendly
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RunRaw is like Run, but also returns the raw stderr and error for callers
 | 
			
		||||
// RunRaw is like RunPiped, but also returns the raw stderr and error for callers
 | 
			
		||||
// that want to do low-level error handling/recovery.
 | 
			
		||||
func (i *Invocation) RunRaw(ctx context.Context) (stdout *bytes.Buffer, stderr *bytes.Buffer, friendlyError error, rawError error) {
 | 
			
		||||
	stdout = &bytes.Buffer{}
 | 
			
		||||
	stderr = &bytes.Buffer{}
 | 
			
		||||
	rawError = i.RunPiped(ctx, stdout, stderr)
 | 
			
		||||
	if rawError != nil {
 | 
			
		||||
		// Check for 'go' executable not being found.
 | 
			
		||||
		if ee, ok := rawError.(*exec.Error); ok && ee.Err == exec.ErrNotFound {
 | 
			
		||||
			friendlyError = fmt.Errorf("go command required, not found: %v", ee)
 | 
			
		||||
		}
 | 
			
		||||
		if ctx.Err() != nil {
 | 
			
		||||
			friendlyError = ctx.Err()
 | 
			
		||||
		}
 | 
			
		||||
		friendlyError = fmt.Errorf("err: %v: stderr: %s", rawError, stderr)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RunPiped is like Run, but relies on the given stdout/stderr
 | 
			
		||||
func (i *Invocation) RunPiped(ctx context.Context, stdout, stderr io.Writer) error {
 | 
			
		||||
	log := i.Logf
 | 
			
		||||
	if log == nil {
 | 
			
		||||
		log = func(string, ...interface{}) {}
 | 
			
		||||
@@ -51,8 +70,6 @@ func (i *Invocation) RunRaw(ctx context.Context) (stdout *bytes.Buffer, stderr *
 | 
			
		||||
		goArgs = append(goArgs, i.Args...)
 | 
			
		||||
	}
 | 
			
		||||
	cmd := exec.Command("go", goArgs...)
 | 
			
		||||
	stdout = &bytes.Buffer{}
 | 
			
		||||
	stderr = &bytes.Buffer{}
 | 
			
		||||
	cmd.Stdout = stdout
 | 
			
		||||
	cmd.Stderr = stderr
 | 
			
		||||
	// On darwin the cwd gets resolved to the real path, which breaks anything that
 | 
			
		||||
@@ -66,19 +83,7 @@ func (i *Invocation) RunRaw(ctx context.Context) (stdout *bytes.Buffer, stderr *
 | 
			
		||||
 | 
			
		||||
	defer func(start time.Time) { log("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now())
 | 
			
		||||
 | 
			
		||||
	rawError = runCmdContext(ctx, cmd)
 | 
			
		||||
	friendlyError = rawError
 | 
			
		||||
	if rawError != nil {
 | 
			
		||||
		// Check for 'go' executable not being found.
 | 
			
		||||
		if ee, ok := rawError.(*exec.Error); ok && ee.Err == exec.ErrNotFound {
 | 
			
		||||
			friendlyError = fmt.Errorf("go command required, not found: %v", ee)
 | 
			
		||||
		}
 | 
			
		||||
		if ctx.Err() != nil {
 | 
			
		||||
			friendlyError = ctx.Err()
 | 
			
		||||
		}
 | 
			
		||||
		friendlyError = fmt.Errorf("err: %v: stderr: %s", rawError, stderr)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
	return runCmdContext(ctx, cmd)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// runCmdContext is like exec.CommandContext except it sends os.Interrupt
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								vendor/golang.org/x/tools/internal/gopathwalk/walk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								vendor/golang.org/x/tools/internal/gopathwalk/walk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -23,8 +23,10 @@ import (
 | 
			
		||||
 | 
			
		||||
// Options controls the behavior of a Walk call.
 | 
			
		||||
type Options struct {
 | 
			
		||||
	Debug          bool // Enable debug logging
 | 
			
		||||
	ModulesEnabled bool // Search module caches. Also disables legacy goimports ignore rules.
 | 
			
		||||
	// If Logf is non-nil, debug logging is enabled through this function.
 | 
			
		||||
	Logf func(format string, args ...interface{})
 | 
			
		||||
	// Search module caches. Also disables legacy goimports ignore rules.
 | 
			
		||||
	ModulesEnabled bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RootType indicates the type of a Root.
 | 
			
		||||
@@ -80,14 +82,14 @@ func WalkSkip(roots []Root, add func(root Root, dir string), skip func(root Root
 | 
			
		||||
// walkDir creates a walker and starts fastwalk with this walker.
 | 
			
		||||
func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) bool, opts Options) {
 | 
			
		||||
	if _, err := os.Stat(root.Path); os.IsNotExist(err) {
 | 
			
		||||
		if opts.Debug {
 | 
			
		||||
			log.Printf("skipping nonexistent directory: %v", root.Path)
 | 
			
		||||
		if opts.Logf != nil {
 | 
			
		||||
			opts.Logf("skipping nonexistent directory: %v", root.Path)
 | 
			
		||||
		}
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	start := time.Now()
 | 
			
		||||
	if opts.Debug {
 | 
			
		||||
		log.Printf("gopathwalk: scanning %s", root.Path)
 | 
			
		||||
	if opts.Logf != nil {
 | 
			
		||||
		opts.Logf("gopathwalk: scanning %s", root.Path)
 | 
			
		||||
	}
 | 
			
		||||
	w := &walker{
 | 
			
		||||
		root: root,
 | 
			
		||||
@@ -100,8 +102,8 @@ func walkDir(root Root, add func(Root, string), skip func(root Root, dir string)
 | 
			
		||||
		log.Printf("gopathwalk: scanning directory %v: %v", root.Path, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if opts.Debug {
 | 
			
		||||
		log.Printf("gopathwalk: scanned %s in %v", root.Path, time.Since(start))
 | 
			
		||||
	if opts.Logf != nil {
 | 
			
		||||
		opts.Logf("gopathwalk: scanned %s in %v", root.Path, time.Since(start))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -130,11 +132,11 @@ func (w *walker) init() {
 | 
			
		||||
		full := filepath.Join(w.root.Path, p)
 | 
			
		||||
		if fi, err := os.Stat(full); err == nil {
 | 
			
		||||
			w.ignoredDirs = append(w.ignoredDirs, fi)
 | 
			
		||||
			if w.opts.Debug {
 | 
			
		||||
				log.Printf("Directory added to ignore list: %s", full)
 | 
			
		||||
			if w.opts.Logf != nil {
 | 
			
		||||
				w.opts.Logf("Directory added to ignore list: %s", full)
 | 
			
		||||
			}
 | 
			
		||||
		} else if w.opts.Debug {
 | 
			
		||||
			log.Printf("Error statting ignored directory: %v", err)
 | 
			
		||||
		} else if w.opts.Logf != nil {
 | 
			
		||||
			w.opts.Logf("Error statting ignored directory: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -145,11 +147,11 @@ func (w *walker) init() {
 | 
			
		||||
func (w *walker) getIgnoredDirs(path string) []string {
 | 
			
		||||
	file := filepath.Join(path, ".goimportsignore")
 | 
			
		||||
	slurp, err := ioutil.ReadFile(file)
 | 
			
		||||
	if w.opts.Debug {
 | 
			
		||||
	if w.opts.Logf != nil {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Print(err)
 | 
			
		||||
			w.opts.Logf("%v", err)
 | 
			
		||||
		} else {
 | 
			
		||||
			log.Printf("Read %s", file)
 | 
			
		||||
			w.opts.Logf("Read %s", file)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								vendor/golang.org/x/tools/internal/imports/fix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/golang.org/x/tools/internal/imports/fix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -262,7 +262,7 @@ type pass struct {
 | 
			
		||||
 | 
			
		||||
// loadPackageNames saves the package names for everything referenced by imports.
 | 
			
		||||
func (p *pass) loadPackageNames(imports []*ImportInfo) error {
 | 
			
		||||
	if p.env.Debug {
 | 
			
		||||
	if p.env.Logf != nil {
 | 
			
		||||
		p.env.Logf("loading package names for %v packages", len(imports))
 | 
			
		||||
		defer func() {
 | 
			
		||||
			p.env.Logf("done loading package names for %v packages", len(imports))
 | 
			
		||||
@@ -334,7 +334,7 @@ func (p *pass) load() ([]*ImportFix, bool) {
 | 
			
		||||
	if p.loadRealPackageNames {
 | 
			
		||||
		err := p.loadPackageNames(append(imports, p.candidates...))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if p.env.Debug {
 | 
			
		||||
			if p.env.Logf != nil {
 | 
			
		||||
				p.env.Logf("loading package names: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
			return nil, false
 | 
			
		||||
@@ -528,7 +528,7 @@ func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	srcDir := filepath.Dir(abs)
 | 
			
		||||
	if env.Debug {
 | 
			
		||||
	if env.Logf != nil {
 | 
			
		||||
		env.Logf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -746,7 +746,6 @@ func getPackageExports(ctx context.Context, wrapped func(PackageExport), searchP
 | 
			
		||||
// the go command, the go/build package, etc.
 | 
			
		||||
type ProcessEnv struct {
 | 
			
		||||
	LocalPrefix string
 | 
			
		||||
	Debug       bool
 | 
			
		||||
 | 
			
		||||
	BuildFlags []string
 | 
			
		||||
 | 
			
		||||
@@ -755,7 +754,7 @@ type ProcessEnv struct {
 | 
			
		||||
	GOPATH, GOROOT, GO111MODULE, GOPROXY, GOFLAGS, GOSUMDB string
 | 
			
		||||
	WorkingDir                                             string
 | 
			
		||||
 | 
			
		||||
	// Logf is the default logger for the ProcessEnv.
 | 
			
		||||
	// If Logf is non-nil, debug logging is enabled through this function.
 | 
			
		||||
	Logf func(format string, args ...interface{})
 | 
			
		||||
 | 
			
		||||
	resolver Resolver
 | 
			
		||||
@@ -1238,7 +1237,7 @@ func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error
 | 
			
		||||
		case <-r.scanSema:
 | 
			
		||||
		}
 | 
			
		||||
		defer func() { r.scanSema <- struct{}{} }()
 | 
			
		||||
		gopathwalk.Walk(roots, add, gopathwalk.Options{Debug: r.env.Debug, ModulesEnabled: false})
 | 
			
		||||
		gopathwalk.Walk(roots, add, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: false})
 | 
			
		||||
		close(scanDone)
 | 
			
		||||
	}()
 | 
			
		||||
	select {
 | 
			
		||||
@@ -1342,7 +1341,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if env.Debug {
 | 
			
		||||
	if env.Logf != nil {
 | 
			
		||||
		sortedExports := append([]string(nil), exports...)
 | 
			
		||||
		sort.Strings(sortedExports)
 | 
			
		||||
		env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, strings.Join(sortedExports, ", "))
 | 
			
		||||
@@ -1358,7 +1357,7 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
 | 
			
		||||
	// ones.  Note that this sorts by the de-vendored name, so
 | 
			
		||||
	// there's no "penalty" for vendoring.
 | 
			
		||||
	sort.Sort(byDistanceOrImportPathShortLength(candidates))
 | 
			
		||||
	if pass.env.Debug {
 | 
			
		||||
	if pass.env.Logf != nil {
 | 
			
		||||
		for i, c := range candidates {
 | 
			
		||||
			pass.env.Logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir)
 | 
			
		||||
		}
 | 
			
		||||
@@ -1396,14 +1395,14 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
 | 
			
		||||
					wg.Done()
 | 
			
		||||
				}()
 | 
			
		||||
 | 
			
		||||
				if pass.env.Debug {
 | 
			
		||||
				if pass.env.Logf != nil {
 | 
			
		||||
					pass.env.Logf("loading exports in dir %s (seeking package %s)", c.pkg.dir, pkgName)
 | 
			
		||||
				}
 | 
			
		||||
				// If we're an x_test, load the package under test's test variant.
 | 
			
		||||
				includeTest := strings.HasSuffix(pass.f.Name.Name, "_test") && c.pkg.dir == pass.srcDir
 | 
			
		||||
				_, exports, err := pass.env.GetResolver().loadExports(ctx, c.pkg, includeTest)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					if pass.env.Debug {
 | 
			
		||||
					if pass.env.Logf != nil {
 | 
			
		||||
						pass.env.Logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
 | 
			
		||||
					}
 | 
			
		||||
					resc <- nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/golang.org/x/tools/internal/imports/imports.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/golang.org/x/tools/internal/imports/imports.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -21,7 +21,6 @@ import (
 | 
			
		||||
	"go/token"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"strconv"
 | 
			
		||||
@@ -155,12 +154,6 @@ func initialize(filename string, src []byte, opt *Options) ([]byte, *Options, er
 | 
			
		||||
			GOSUMDB:     os.Getenv("GOSUMDB"),
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Set the logger if the user has not provided it.
 | 
			
		||||
	if opt.Env.Logf == nil {
 | 
			
		||||
		opt.Env.Logf = log.Printf
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if src == nil {
 | 
			
		||||
		b, err := ioutil.ReadFile(filename)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/golang.org/x/tools/internal/imports/mod.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/golang.org/x/tools/internal/imports/mod.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -156,7 +156,7 @@ func (r *ModuleResolver) initAllMods() error {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		if mod.Dir == "" {
 | 
			
		||||
			if r.env.Debug {
 | 
			
		||||
			if r.env.Logf != nil {
 | 
			
		||||
				r.env.Logf("module %v has not been downloaded and will be ignored", mod.Path)
 | 
			
		||||
			}
 | 
			
		||||
			// Can't do anything with a module that's not downloaded.
 | 
			
		||||
@@ -470,7 +470,7 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error
 | 
			
		||||
			if r.scannedRoots[root] {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Debug: r.env.Debug, ModulesEnabled: true})
 | 
			
		||||
			gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: true})
 | 
			
		||||
			r.scannedRoots[root] = true
 | 
			
		||||
		}
 | 
			
		||||
		close(scanDone)
 | 
			
		||||
@@ -583,7 +583,7 @@ func (r *ModuleResolver) scanDirForPackage(root gopathwalk.Root, dir string) dir
 | 
			
		||||
		}
 | 
			
		||||
		modPath, err := module.UnescapePath(filepath.ToSlash(matches[1]))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if r.env.Debug {
 | 
			
		||||
			if r.env.Logf != nil {
 | 
			
		||||
				r.env.Logf("decoding module cache path %q: %v", subdir, err)
 | 
			
		||||
			}
 | 
			
		||||
			return directoryPackageInfo{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user