github.com/ferretdb/golangci-lint@v1.10.1/pkg/commands/linters.go (about)

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