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  }