Files
tuukoti-framework/config/config.go
2022-07-21 21:38:28 +01:00

55 lines
907 B
Go

package config
import (
"fmt"
"os"
"gopkg.in/yaml.v3"
)
type Config struct {
Host string `yaml:"host"`
Debug bool `yaml:"debug"`
}
// Load simply loads the config from location "path".
func Load(path string) (*Config, error) {
f, err := os.ReadFile(path)
if err != nil {
return nil, &ErrMissingConfigFile{
Path: path,
Err: err,
}
}
cfg := &Config{}
err = yaml.Unmarshal(f, cfg)
if err != nil {
return nil, &ErrInvalidConfig{
Path: path,
Err: err,
}
}
return nil, nil
}
type ErrMissingConfigFile struct {
Path string
Err error
}
func (e *ErrMissingConfigFile) Error() string {
return fmt.Sprintf("unable to location config file: %s, | err: %s", e.Path, e.Err.Error())
}
type ErrInvalidConfig struct {
Path string
Err error
}
func (e *ErrInvalidConfig) Error() string {
return fmt.Sprintf("invalid config file: %s, | err: %s", e.Path, e.Err.Error())
}