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 }