From 1f2ed7cb6ab984bf61b1a327e2cbf76bd7096a51 Mon Sep 17 00:00:00 2001 From: Alexander Chuprov Date: Mon, 7 Aug 2023 17:24:19 +0300 Subject: [PATCH] [#4] linters: Add configuration through ENV Signed-off-by: Alexander Chuprov --- main.go | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index a34fc49..d549a58 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,9 @@ package main import ( + "os" + "strings" + noliteral "git.frostfs.info/TrueCloudLab/linters/internal/analyzers/noliteral" "github.com/mitchellh/mapstructure" "golang.org/x/tools/go/analysis" @@ -12,22 +15,34 @@ type analyzerPlugin struct{} // for version ci-lint < '1.5.4'. func (*analyzerPlugin) GetAnalyzers() []*analysis.Analyzer { - return []*analysis.Analyzer{noliteral.LogsAnalyzer} + analyzer, _ := New(nil) + return analyzer } // for version ci-lint >= '1.5.4'. func New(conf any) ([]*analysis.Analyzer, error) { - var config noliteral.Configuration + targetMethods := strings.Split(os.Getenv("NOLITERAL_TARGET_METHODS"), ",") + constantsPackage := os.Getenv("NOLITERAL_CONSTANTS_PACKAGE") + + configMap := map[string]any{ + "target-methods": targetMethods, + "constants-package": constantsPackage, + } if confMap, ok := conf.(map[string]any); ok { - err := mapstructure.Decode(confMap, &config) - if err != nil { - return nil, err + for k, v := range confMap { + configMap[k] = v } - - noliteral.Config.TargetMethods = append(noliteral.Config.TargetMethods, config.TargetMethods...) - noliteral.Config.ConstantsPackage = config.ConstantsPackage } + var config noliteral.Configuration + err := mapstructure.Decode(configMap, &config) + if err != nil { + return nil, err + } + + noliteral.Config.TargetMethods = append(noliteral.Config.TargetMethods, config.TargetMethods...) + noliteral.Config.ConstantsPackage = config.ConstantsPackage + return []*analysis.Analyzer{noliteral.LogsAnalyzer}, nil }