github.com/elek/golangci-lint@v1.42.2-0.20211208090441-c05b7fcb3a9a/pkg/commands/linters.go (about)

     1  package commands
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  
     7  	"github.com/fatih/color"
     8  	"github.com/spf13/cobra"
     9  
    10  	"github.com/elek/golangci-lint/pkg/lint/linter"
    11  )
    12  
    13  func (e *Executor) initLinters() {
    14  	e.lintersCmd = &cobra.Command{
    15  		Use:   "linters",
    16  		Short: "List current linters configuration",
    17  		Run:   e.executeLinters,
    18  	}
    19  	e.rootCmd.AddCommand(e.lintersCmd)
    20  	e.initRunConfiguration(e.lintersCmd)
    21  }
    22  
    23  func (e *Executor) executeLinters(_ *cobra.Command, args []string) {
    24  	if len(args) != 0 {
    25  		e.log.Fatalf("Usage: golangci-lint linters")
    26  	}
    27  
    28  	enabledLintersMap, err := e.EnabledLintersSet.GetEnabledLintersMap()
    29  	if err != nil {
    30  		log.Fatalf("Can't get enabled linters: %s", err)
    31  	}
    32  
    33  	color.Green("Enabled by your configuration linters:\n")
    34  	enabledLinters := make([]*linter.Config, 0, len(enabledLintersMap))
    35  	for _, linter := range enabledLintersMap {
    36  		enabledLinters = append(enabledLinters, linter)
    37  	}
    38  	printLinterConfigs(enabledLinters)
    39  
    40  	var disabledLCs []*linter.Config
    41  	for _, lc := range e.DBManager.GetAllSupportedLinterConfigs() {
    42  		if enabledLintersMap[lc.Name()] == nil {
    43  			disabledLCs = append(disabledLCs, lc)
    44  		}
    45  	}
    46  
    47  	color.Red("\nDisabled by your configuration linters:\n")
    48  	printLinterConfigs(disabledLCs)
    49  
    50  	os.Exit(0)
    51  }