45 lines
742 B
Go
45 lines
742 B
Go
package commands
|
|
|
|
import (
|
|
"github.com/golangci/golangci-lint/pkg/config"
|
|
"github.com/golangci/golangci-lint/pkg/logutils"
|
|
"github.com/golangci/golangci-lint/pkg/report"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
type Executor struct {
|
|
rootCmd *cobra.Command
|
|
|
|
cfg *config.Config
|
|
|
|
exitCode int
|
|
|
|
version, commit, date string
|
|
|
|
log logutils.Log
|
|
|
|
reportData report.Data
|
|
}
|
|
|
|
func NewExecutor(version, commit, date string) *Executor {
|
|
e := &Executor{
|
|
cfg: config.NewDefault(),
|
|
version: version,
|
|
commit: commit,
|
|
date: date,
|
|
}
|
|
|
|
e.log = report.NewLogWrapper(logutils.NewStderrLog(""), &e.reportData)
|
|
|
|
e.initRoot()
|
|
e.initRun()
|
|
e.initHelp()
|
|
e.initLinters()
|
|
|
|
return e
|
|
}
|
|
|
|
func (e Executor) Execute() error {
|
|
return e.rootCmd.Execute()
|
|
}
|