 6a979fb40d
			
		
	
	
		6a979fb40d
		
			
		
	
	
	
	
		
			
			* update staticcheck Don't fork staticcheck: use the upstream version. Remove unneeded SSA loading. * Cache go/analysis facts Don't load unneeded packages for go/analysis. Repeated run of go/analysis linters now 10x faster (2s vs 20s on this repo) than before.
		
			
				
	
	
		
			47 lines
		
	
	
		
			816 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			816 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // +build go1.12
 | |
| 
 | |
| package version
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"runtime/debug"
 | |
| )
 | |
| 
 | |
| func printBuildInfo() {
 | |
| 	if info, ok := debug.ReadBuildInfo(); ok {
 | |
| 		fmt.Println("Main module:")
 | |
| 		printModule(&info.Main)
 | |
| 		fmt.Println("Dependencies:")
 | |
| 		for _, dep := range info.Deps {
 | |
| 			printModule(dep)
 | |
| 		}
 | |
| 	} else {
 | |
| 		fmt.Println("Built without Go modules")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func buildInfoVersion() (string, bool) {
 | |
| 	info, ok := debug.ReadBuildInfo()
 | |
| 	if !ok {
 | |
| 		return "", false
 | |
| 	}
 | |
| 	if info.Main.Version == "(devel)" {
 | |
| 		return "", false
 | |
| 	}
 | |
| 	return info.Main.Version, true
 | |
| }
 | |
| 
 | |
| func printModule(m *debug.Module) {
 | |
| 	fmt.Printf("\t%s", m.Path)
 | |
| 	if m.Version != "(devel)" {
 | |
| 		fmt.Printf("@%s", m.Version)
 | |
| 	}
 | |
| 	if m.Sum != "" {
 | |
| 		fmt.Printf(" (sum: %s)", m.Sum)
 | |
| 	}
 | |
| 	if m.Replace != nil {
 | |
| 		fmt.Printf(" (replace: %s)", m.Replace.Path)
 | |
| 	}
 | |
| 	fmt.Println()
 | |
| }
 |