58 lines
971 B
Go
58 lines
971 B
Go
|
package model
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
|
||
|
"gopkg.in/yaml.v2"
|
||
|
)
|
||
|
|
||
|
type SkipConfig struct {
|
||
|
Services []ServiceSkipConfig `yaml:"services"`
|
||
|
}
|
||
|
|
||
|
type ServiceSkipConfig struct {
|
||
|
Name string `yaml:"name"`
|
||
|
Operations []string `yaml:"operations"`
|
||
|
}
|
||
|
|
||
|
func (s *SkipConfig) ShouldSkip(serviceName, name string) bool {
|
||
|
for _, service := range s.Services {
|
||
|
if service.Name == serviceName {
|
||
|
for _, operation := range service.Operations {
|
||
|
if name == operation {
|
||
|
return true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
func ReadYaml(path string, v interface{}) error {
|
||
|
f, err := os.Open(path)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
defer f.Close()
|
||
|
|
||
|
decoder := yaml.NewDecoder(f)
|
||
|
err = decoder.Decode(v)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func ReadSkipConfig(path string) (*SkipConfig, error) {
|
||
|
if path == "" {
|
||
|
return &SkipConfig{}, nil
|
||
|
}
|
||
|
|
||
|
skipConfig := &SkipConfig{}
|
||
|
err := ReadYaml(path, skipConfig)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return skipConfig, nil
|
||
|
}
|