package main import "github.com/spf13/viper" type Config struct { BotPrefix string `yaml:"bot.prefix"` BotToken string `yaml:"bot.token"` ViperConf *viper.Viper } func (config Config) GenerateConfig(configName string) Config { vi := viper.New() vi.SetConfigFile(configName + ".yml") vi.ReadInConfig() config.BotPrefix = vi.GetString("bot.prefix") config.BotToken = vi.GetString("bot.token") config.ViperConf = vi return config } func (config Config) GetString(key string) string { return config.ViperConf.GetString(key) } func (config Config) GetInt(key string) int { return config.ViperConf.GetInt(key) } func (config Config) LoadConfig() Config { //TODO make this load config return config }