github.com/datreeio/datree@v1.9.22-rc/pkg/policy/policy.go (about) 1 package policy 2 3 import ( 4 "github.com/datreeio/datree/pkg/defaultPolicies" 5 "github.com/datreeio/datree/pkg/validatePoliciesYaml" 6 7 "github.com/datreeio/datree/pkg/fileReader" 8 "github.com/ghodss/yaml" 9 ) 10 11 func GetPoliciesFileFromPath(path string) (*defaultPolicies.EvaluationPrerunPolicies, error) { 12 fileReader := fileReader.CreateFileReader(nil) 13 policiesStr, err := fileReader.ReadFileContent(path) 14 if err != nil { 15 return nil, err 16 } 17 18 policiesStrBytes := []byte(policiesStr) 19 20 err = validatePoliciesYaml.ValidatePoliciesYaml(policiesStrBytes, path) 21 if err != nil { 22 return nil, err 23 } 24 25 var policies *defaultPolicies.EvaluationPrerunPolicies 26 policiesBytes, err := yaml.YAMLToJSON(policiesStrBytes) 27 if err != nil { 28 return nil, err 29 } 30 31 err = yaml.Unmarshal(policiesBytes, &policies) 32 if err != nil { 33 return nil, err 34 } 35 36 return policies, nil 37 }