Notes/config.go

55 lines
787 B
Go

package main
import (
// External
"gopkg.in/yaml.v3"
// Standard
"errors"
"os"
)
type Config struct {
Websocket struct {
Domains []string
}
Database struct {
Host string
Port int
Name string
Username string
Password string
}
Application struct {
Directories struct {
Static string
Upload string
}
NotificationBaseURL string
}
Session struct {
DaysValid int
}
}
func ConfigRead(filename string) (config Config, err error) {
var rawConfigData []byte
rawConfigData, err = os.ReadFile(filename)
if err != nil { return }
err = yaml.Unmarshal(rawConfigData, &config)
if err != nil {
return
}
if config.Session.DaysValid == 0 {
err = errors.New("Configuration: session.daysvalid needs to be higher than 0.")
}
return
}