2018-09-05 15:08:40 -04:00
|
|
|
package fix
|
|
|
|
|
|
|
|
// PP is a convenient way to interact with the post-processors within a fixer
|
|
|
|
type PP struct {
|
|
|
|
PostProcessors []interface{} `mapstructure:"post-processors"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// postProcessors converts the variable structure of the template to a list
|
2018-09-06 14:55:11 -04:00
|
|
|
func (pp *PP) ppList() []map[string]interface{} {
|
2018-09-05 15:08:40 -04:00
|
|
|
pps := make([]map[string]interface{}, 0, len(pp.PostProcessors))
|
|
|
|
for _, rawPP := range pp.PostProcessors {
|
|
|
|
switch pp := rawPP.(type) {
|
|
|
|
case string:
|
|
|
|
case map[string]interface{}:
|
|
|
|
pps = append(pps, pp)
|
|
|
|
case []interface{}:
|
|
|
|
for _, innerRawPP := range pp {
|
|
|
|
if innerPP, ok := innerRawPP.(map[string]interface{}); ok {
|
|
|
|
pps = append(pps, innerPP)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return pps
|
|
|
|
}
|