39 lines
777 B
Go
39 lines
777 B
Go
package main
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
type Config struct {
|
|
Token string
|
|
MumbleHost string
|
|
MumblePort string
|
|
MumblePing int
|
|
}
|
|
|
|
func LoadConfig() (*Config, error) {
|
|
viper.SetConfigName("yammerbot")
|
|
viper.AddConfigPath("/etc/yammerbot")
|
|
viper.AddConfigPath(".")
|
|
err := viper.ReadInConfig()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
viper.SetConfigType("yaml")
|
|
c := &Config{}
|
|
viper.SetDefault("port", "64738")
|
|
viper.SetDefault("ping_time", 3)
|
|
//Load configs
|
|
c.Token = viper.GetString("token")
|
|
c.MumbleHost = viper.GetString("host")
|
|
c.MumblePort = viper.GetString("port")
|
|
c.MumblePing = viper.GetInt("ping_time")
|
|
|
|
if c.Token == "" || c.MumbleHost == "" {
|
|
return nil, errors.New("Config has missing necesary values")
|
|
}
|
|
return c, nil
|
|
}
|