github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/cmd/golangci-lint/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"runtime/debug"
     7  
     8  	"github.com/chenfeining/golangci-lint/pkg/commands"
     9  	"github.com/chenfeining/golangci-lint/pkg/exitcodes"
    10  )
    11  
    12  var (
    13  	goVersion = "unknown"
    14  
    15  	// Populated by goreleaser during build
    16  	version = "master"
    17  	commit  = "?"
    18  	date    = ""
    19  )
    20  
    21  func main() {
    22  	if buildInfo, available := debug.ReadBuildInfo(); available {
    23  		goVersion = buildInfo.GoVersion
    24  
    25  		if date == "" {
    26  			version = buildInfo.Main.Version
    27  			commit = fmt.Sprintf("(unknown, mod sum: %q)", buildInfo.Main.Sum)
    28  			date = "(unknown)"
    29  		}
    30  	}
    31  
    32  	info := commands.BuildInfo{
    33  		GoVersion: goVersion,
    34  		Version:   version,
    35  		Commit:    commit,
    36  		Date:      date,
    37  	}
    38  
    39  	e := commands.NewExecutor(info)
    40  
    41  	if err := e.Execute(); err != nil {
    42  		fmt.Fprintf(os.Stderr, "failed executing command with error %v\n", err)
    43  		os.Exit(exitcodes.Failure)
    44  	}
    45  }