@@ -30,12 +30,28 @@ func (r *RuleSet) RuleNames() []string {
3030func (r * RuleSet ) ApplyConfig (config * tflint.Config ) error {
3131 r .ApplyCommonConfig (config )
3232
33+ // Apply "plugin" block config
3334 cfg := Config {}
3435 diags := gohcl .DecodeBody (config .Body , nil , & cfg )
3536 if diags .HasErrors () {
3637 return diags
3738 }
3839 r .config = & cfg
40+
41+ // Apply config for API rules
42+ for _ , rule := range r .APIRules {
43+ enabled := rule .Enabled ()
44+ if cfg := config .Rules [rule .Name ()]; cfg != nil {
45+ enabled = cfg .Enabled
46+ } else if config .DisabledByDefault {
47+ enabled = false
48+ }
49+
50+ if cfg .DeepCheck && enabled {
51+ r .EnabledRules = append (r .EnabledRules , rule )
52+ }
53+ }
54+
3955 return nil
4056}
4157
@@ -46,16 +62,7 @@ func (r *RuleSet) Check(rr tflint.Runner) error {
4662 return err
4763 }
4864
49- for _ , rule := range r .Rules {
50- if err := rule .Check (runner ); err != nil {
51- return fmt .Errorf ("Failed to check `%s` rule: %s" , rule .Name (), err )
52- }
53- }
54- if ! r .config .DeepCheck {
55- return nil
56- }
57-
58- for _ , rule := range r .APIRules {
65+ for _ , rule := range r .EnabledRules {
5966 if err := rule .Check (runner ); err != nil {
6067 return fmt .Errorf ("Failed to check `%s` rule: %s" , rule .Name (), err )
6168 }
0 commit comments