1 Star 5 Fork 2

蜉尘/gohangout

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
yaml_config_parser.go 985 Bytes
一键复制 编辑 原始数据 按行查看 历史
childe 提交于 2018-01-05 15:38 . fix
package main
import (
"fmt"
"io/ioutil"
"net/http"
"os"
"strings"
yaml "gopkg.in/yaml.v2"
)
type YamlParser struct{}
func (yp *YamlParser) parse(filepath string) (map[string]interface{}, error) {
var (
buffer []byte
err error
)
if strings.HasPrefix(filepath, "http://") || strings.HasPrefix(filepath, "https://") {
resp, err := http.Get(filepath)
if err != nil {
return nil, err
}
defer resp.Body.Close()
buffer, err = ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
} else {
configFile, err := os.Open(filepath)
if err != nil {
return nil, err
}
fi, _ := configFile.Stat()
if fi.Size() == 0 {
return nil, fmt.Errorf("config file (%s) is empty", filepath)
}
buffer = make([]byte, fi.Size())
_, err = configFile.Read(buffer)
if err != nil {
return nil, err
}
}
config := make(map[string]interface{})
err = yaml.Unmarshal(buffer, &config)
if err != nil {
return nil, err
}
return config, nil
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ant_code/gohangout.git
git@gitee.com:ant_code/gohangout.git
ant_code
gohangout
gohangout
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385