34 lines
753 B
Go
34 lines
753 B
Go
package config
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
var C *Config
|
|
|
|
type Config struct {
|
|
Phone string `mapstructure:"phone"`
|
|
AppID int `mapstructure:"app_id"`
|
|
AppHash string `mapstructure:"app_hash"`
|
|
BotToken string `mapstructure:"bot_token"`
|
|
SessionFile string `mapstructure:"session_file"`
|
|
LogFile string `mapstructure:"log_file"`
|
|
}
|
|
|
|
func Load(path string) error {
|
|
// Load the config file
|
|
viper.SetConfigFile(path)
|
|
viper.AutomaticEnv()
|
|
|
|
if err := viper.ReadInConfig(); err != nil {
|
|
return errors.Wrapf(err, "failed to read the config file %s", path)
|
|
}
|
|
|
|
if err := viper.Unmarshal(&C); err != nil {
|
|
return errors.Wrapf(err, "failed to unmarshal the config %s", path)
|
|
}
|
|
|
|
return nil
|
|
}
|