41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package infrastructure
|
|
|
|
import (
|
|
"github.com/creasty/defaults"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
type Config struct {
|
|
DBUser string `mapstructure:"db-user" default:"userpg"`
|
|
DBName string `mapstructure:"db-name" default:"58blog"`
|
|
DBPass string `mapstructure:"db-password" default:"1205"`
|
|
DBHost string `mapstructure:"db-host" default:"localhost"`
|
|
DBPort string `mapstructure:"db-port" default:"5432"`
|
|
AdminName string `mapstructure:"admin_name" default:"muts"`
|
|
AdminPassword string `mapstructure:"admin_pass" default:"1205"`
|
|
ImagesPath string `mapstructure:"images_path" default:"./images/"`
|
|
PostsPath string `mapstructure:"posts_path" default:"./posts/"`
|
|
}
|
|
|
|
func LoadConfig() (config *Config, err error) {
|
|
config = &Config{}
|
|
if err = defaults.Set(config); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
viper.SetConfigName("config")
|
|
viper.SetConfigType("yaml")
|
|
viper.AddConfigPath(".")
|
|
viper.AddConfigPath("/etc/58team_blog/")
|
|
viper.AddConfigPath("/58team_blog/cfgs/")
|
|
|
|
if err = viper.ReadInConfig(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if err = viper.Unmarshal(&config); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return config, nil
|
|
}
|