github.com/songshiyun/revive@v1.1.5-0.20220323112655-f8433a19b3c5/cli/embed.go (about) 1 package cli 2 3 import ( 4 "embed" 5 "github.com/songshiyun/revive/config" 6 "github.com/songshiyun/revive/lint" 7 ) 8 9 //go:embed revive.toml 10 var defaultConfFile embed.FS 11 12 func loadDefaultConf() (*lint.Config, error) { 13 res, err := defaultConfFile.ReadFile("revive.toml") 14 if err != nil { 15 return nil, err 16 } 17 c, err := config.LoadDefaultConfig(res) 18 if err != nil { 19 return nil, err 20 } 21 return c, nil 22 } 23 24 func mergeConf() (*lint.Config, error) { 25 conf, err := loadDefaultConf() 26 if err != nil { 27 return nil, err 28 } 29 if configPath == "" { 30 return conf, nil 31 } 32 conf1, err := config.GetConfig(configPath) 33 if err != nil { 34 return conf, err 35 } 36 mergeConfItem(conf, conf1) 37 return conf, nil 38 } 39 40 func mergeConfItem(conf1, conf2 *lint.Config) { 41 if conf1.IgnoreGeneratedHeader != conf2.IgnoreGeneratedHeader { 42 conf1.IgnoreGeneratedHeader = conf2.IgnoreGeneratedHeader 43 } 44 // 先简单merge rule 45 for k, v := range conf2.Rules { 46 conf1.Rules[k] = v 47 } 48 return 49 }