aeus-admin/pkg/cfgload/file.go

31 lines
483 B
Go

package cfgload
import (
"encoding/json"
"encoding/xml"
"os"
"path"
"gopkg.in/yaml.v3"
)
// FromFile loads configuration from file
func FromFile(filepath string, cfg any) (err error) {
var (
buf []byte
)
if buf, err = os.ReadFile(filepath); err != nil {
return
}
ext := path.Ext(filepath)
switch ext {
case ".json":
err = json.Unmarshal(buf, cfg)
case ".xml":
err = xml.Unmarshal(buf, cfg)
case ".yaml", ".yml":
err = yaml.Unmarshal(buf, cfg)
}
return
}