mirror of
				https://github.com/FiloSottile/mkcert.git
				synced 2022-11-04 12:23:44 +03:00 
			
		
		
		
	analysis.go: use x/tools/go/analysis/multichecker to run analysis tools
This pattern has a number of advantages: it tracks the versions of the tools in go.mod, it doesn't require installing anything in CI, it runs all analysis passes at once, and it lets us add custom ones easily.
This commit is contained in:
		 Filippo Valsorda
					Filippo Valsorda
				
			
				
					committed by
					
						 Filippo Valsorda
						Filippo Valsorda
					
				
			
			
				
	
			
			
			 Filippo Valsorda
						Filippo Valsorda
					
				
			
						parent
						
							4ffcbacbb0
						
					
				
				
					commit
					82ea753aa2
				
			| @@ -1,11 +1,8 @@ | ||||
| language: go | ||||
| sudo: false | ||||
| go: stable | ||||
| install: (cd && go get honnef.co/go/tools/cmd/staticcheck) | ||||
|  | ||||
| script: | ||||
|   - go vet | ||||
|   - staticcheck ./... | ||||
|   - go run analysis.go ./... | ||||
|   - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "mkcert-$(git describe --tags)-linux-amd64" | ||||
|   - CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -o "mkcert-$(git describe --tags)-linux-arm" | ||||
|   - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o "mkcert-$(git describe --tags)-darwin-amd64" | ||||
|   | ||||
							
								
								
									
										80
									
								
								analysis.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								analysis.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| // Copyright 2018 The mkcert Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build analysis | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"golang.org/x/tools/go/analysis" | ||||
| 	"golang.org/x/tools/go/analysis/multichecker" | ||||
|  | ||||
| 	"golang.org/x/tools/go/analysis/passes/asmdecl" | ||||
| 	"golang.org/x/tools/go/analysis/passes/assign" | ||||
| 	"golang.org/x/tools/go/analysis/passes/atomic" | ||||
| 	"golang.org/x/tools/go/analysis/passes/bools" | ||||
| 	"golang.org/x/tools/go/analysis/passes/buildtag" | ||||
| 	"golang.org/x/tools/go/analysis/passes/cgocall" | ||||
| 	"golang.org/x/tools/go/analysis/passes/composite" | ||||
| 	"golang.org/x/tools/go/analysis/passes/copylock" | ||||
| 	"golang.org/x/tools/go/analysis/passes/errorsas" | ||||
| 	"golang.org/x/tools/go/analysis/passes/httpresponse" | ||||
| 	"golang.org/x/tools/go/analysis/passes/loopclosure" | ||||
| 	"golang.org/x/tools/go/analysis/passes/lostcancel" | ||||
| 	"golang.org/x/tools/go/analysis/passes/nilfunc" | ||||
| 	"golang.org/x/tools/go/analysis/passes/printf" | ||||
| 	"golang.org/x/tools/go/analysis/passes/shift" | ||||
| 	"golang.org/x/tools/go/analysis/passes/stdmethods" | ||||
| 	"golang.org/x/tools/go/analysis/passes/structtag" | ||||
| 	"golang.org/x/tools/go/analysis/passes/tests" | ||||
| 	"golang.org/x/tools/go/analysis/passes/unmarshal" | ||||
| 	"golang.org/x/tools/go/analysis/passes/unreachable" | ||||
| 	"golang.org/x/tools/go/analysis/passes/unsafeptr" | ||||
| 	"golang.org/x/tools/go/analysis/passes/unusedresult" | ||||
|  | ||||
| 	"honnef.co/go/tools/simple" | ||||
| 	"honnef.co/go/tools/staticcheck" | ||||
| 	"honnef.co/go/tools/stylecheck" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	var analyzers []*analysis.Analyzer | ||||
|  | ||||
| 	// Add all cmd/vet analyzers. | ||||
| 	analyzers = append(analyzers, | ||||
| 		asmdecl.Analyzer, | ||||
| 		assign.Analyzer, | ||||
| 		atomic.Analyzer, | ||||
| 		bools.Analyzer, | ||||
| 		buildtag.Analyzer, | ||||
| 		cgocall.Analyzer, | ||||
| 		composite.Analyzer, | ||||
| 		copylock.Analyzer, | ||||
| 		errorsas.Analyzer, | ||||
| 		httpresponse.Analyzer, | ||||
| 		loopclosure.Analyzer, | ||||
| 		lostcancel.Analyzer, | ||||
| 		nilfunc.Analyzer, | ||||
| 		printf.Analyzer, | ||||
| 		shift.Analyzer, | ||||
| 		stdmethods.Analyzer, | ||||
| 		structtag.Analyzer, | ||||
| 		tests.Analyzer, | ||||
| 		unmarshal.Analyzer, | ||||
| 		unreachable.Analyzer, | ||||
| 		unsafeptr.Analyzer, | ||||
| 		unusedresult.Analyzer) | ||||
|  | ||||
| 	for _, v := range simple.Analyzers { | ||||
| 		analyzers = append(analyzers, v) | ||||
| 	} | ||||
| 	for _, v := range staticcheck.Analyzers { | ||||
| 		analyzers = append(analyzers, v) | ||||
| 	} | ||||
| 	for _, v := range stylecheck.Analyzers { | ||||
| 		analyzers = append(analyzers, v) | ||||
| 	} | ||||
|  | ||||
| 	multichecker.Main(analyzers...) | ||||
| } | ||||
							
								
								
									
										7
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								go.mod
									
									
									
									
									
								
							| @@ -1,8 +1,11 @@ | ||||
| module github.com/FiloSottile/mkcert | ||||
|  | ||||
| go 1.13 | ||||
|  | ||||
| require ( | ||||
| 	golang.org/x/net v0.0.0-20180627171509-e514e69ffb8b | ||||
| 	golang.org/x/text v0.3.0 // indirect | ||||
| 	golang.org/x/net v0.0.0-20190620200207-3b0461eec859 | ||||
| 	golang.org/x/tools v0.0.0-20191108193012-7d206e10da11 | ||||
| 	honnef.co/go/tools v0.0.0-20191107024926-a9480a3ec3bc | ||||
| 	howett.net/plist v0.0.0-20181124034731-591f970eefbb | ||||
| 	software.sslmate.com/src/go-pkcs12 v0.0.0-20180114231543-2291e8f0f237 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										23
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								go.sum
									
									
									
									
									
								
							| @@ -1,14 +1,33 @@ | ||||
| github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= | ||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||
| github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | ||||
| github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||||
| github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | ||||
| github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | ||||
| github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||
| golang.org/x/net v0.0.0-20180627171509-e514e69ffb8b h1:oXs/nlnyk1ue6g+mFGEHIuIaQIT28IgumdSIRMq2aJY= | ||||
| golang.org/x/net v0.0.0-20180627171509-e514e69ffb8b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= | ||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/tools v0.0.0-20191022074931-774d2ec196ee/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20191108193012-7d206e10da11 h1:Yq9t9jnGoR+dBuitxdo9l6Q7xh/zOyNnYUtDKaQ3x0E= | ||||
| golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= | ||||
| gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| honnef.co/go/tools v0.0.0-20191107024926-a9480a3ec3bc h1:G3KJU7T3tdNpGfKsED8OHHsQozNxEW0rDS785ks+feY= | ||||
| honnef.co/go/tools v0.0.0-20191107024926-a9480a3ec3bc/go.mod h1:bskWClgaWw7pMntzj97vj6x8S0hIhRBiTMJkNmGWTLE= | ||||
| howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= | ||||
| howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= | ||||
| software.sslmate.com/src/go-pkcs12 v0.0.0-20180114231543-2291e8f0f237 h1:iAEkCBPbRaflBgZ7o9gjVUuWuvWeV4sytFWg9o+Pj2k= | ||||
|   | ||||
		Reference in New Issue
	
	Block a user