www.github.com/golangci/golangci-lint.git@v1.10.1/pkg/commands/executor.go (about)

     1  package commands
     2  
     3  import (
     4  	"github.com/golangci/golangci-lint/pkg/config"
     5  	"github.com/golangci/golangci-lint/pkg/logutils"
     6  	"github.com/golangci/golangci-lint/pkg/report"
     7  	"github.com/spf13/cobra"
     8  )
     9  
    10  type Executor struct {
    11  	rootCmd *cobra.Command
    12  
    13  	cfg *config.Config
    14  
    15  	exitCode int
    16  
    17  	version, commit, date string
    18  
    19  	log logutils.Log
    20  
    21  	reportData report.Data
    22  }
    23  
    24  func NewExecutor(version, commit, date string) *Executor {
    25  	e := &Executor{
    26  		cfg:     config.NewDefault(),
    27  		version: version,
    28  		commit:  commit,
    29  		date:    date,
    30  	}
    31  
    32  	e.log = report.NewLogWrapper(logutils.NewStderrLog(""), &e.reportData)
    33  
    34  	e.initRoot()
    35  	e.initRun()
    36  	e.initHelp()
    37  	e.initLinters()
    38  
    39  	return e
    40  }
    41  
    42  func (e Executor) Execute() error {
    43  	return e.rootCmd.Execute()
    44  }