github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/configfile/yaml.go (about)

     1  package configfile
     2  
     3  import (
     4  	"gopkg.in/yaml.v2"
     5  	"io/ioutil"
     6  )
     7  
     8  // YamlTo 转换yaml文件成数据对象.
     9  //
    10  // 例如:
    11  //	err := YamlTo("file.yaml", &obj)
    12  //
    13  func YamlTo(filename string, config interface{}) error {
    14  	if data, err := ioutil.ReadFile(filename); err != nil {
    15  		return err
    16  	} else if err = yaml.Unmarshal(data, config); err != nil {
    17  		return err
    18  	}
    19  	return nil
    20  }
    21  
    22  // YamlToMap 转换yaml文件成map对象.
    23  //
    24  // 例如:
    25  //  m, err := YamlToMap("file.yaml")
    26  //
    27  func YamlToMap(filename string) (config map[interface{}]interface{}, err error) {
    28  	config = make(map[interface{}]interface{})
    29  	if data, err := ioutil.ReadFile(filename); err != nil {
    30  		return config, err
    31  	} else if err = yaml.Unmarshal(data, &config); err != nil {
    32  		return config, err
    33  	}
    34  	return
    35  }
    36  
    37  // Yaml 生成yaml文件.
    38  //
    39  // 例如:
    40  //  data, err := Yaml(&obj)
    41  //
    42  func Yaml(config interface{}) (data []byte, err error) {
    43  	data, err = yaml.Marshal(config)
    44  	return
    45  }