/
main.go
36 lines (28 loc) · 1.14 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// This file can build as a plugin for golangci-lint by below command.
// go build -buildmode=plugin -o path_to_plugin_dir github.com/riita10069/check_interface/plugin/check_interface
// See: https://golangci-lint.run/contributing/new-linters/#how-to-add-a-private-linter-to-golangci-lint
package main
import (
"strings"
"github.com/riita10069/check_interface"
"golang.org/x/tools/go/analysis"
)
// flags for Analyzer.Flag.
// If you would like to specify flags for your plugin, you can put them via 'ldflags' as below.
// $ go build -buildmode=plugin -ldflags "-X 'main.flags=-opt val'" github.com/riita10069/check_interface/plugin/check_interface
var flags string
// AnalyzerPlugin provides analyzers as a plugin.
// It follows golangci-lint style plugin.
var AnalyzerPlugin analyzerPlugin
type analyzerPlugin struct{}
func (analyzerPlugin) GetAnalyzers() []*analysis.Analyzer {
if flags != "" {
flagset := check_interface.Analyzer.Flags
if err := flagset.Parse(strings.Split(flags, " ")); err != nil {
panic("cannot parse flags of check_interface: " + err.Error())
}
}
return []*analysis.Analyzer{
check_interface.Analyzer,
}
}