blob: f877eba0b1ea146549179b30b0a024b8e9416c79 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package main
import (
log "github.com/Sirupsen/logrus"
"github.com/spf13/viper"
)
type Config struct {
DBDBName string
DBHost string
DBPort int
DBUser string
DBPassword string
DBOptions string
}
// Parses the configuration and sets the configuration struct.
func (c *Config) parseConfig(configFile string) {
viper.SetDefault("DBDBName", "alkobote")
viper.SetDefault("DBHost", "127.0.0.1")
viper.SetDefault("DBPort", 3306)
// Name of the configuration file
viper.SetConfigName("config")
// Where to find the config file
if configFile == "" {
viper.AddConfigPath("/etc/alkobote.de/")
viper.AddConfigPath(".")
viper.AddConfigPath("$HOME/.config/alkobote.de/")
viper.AddConfigPath("$HOME/alkobote.de/")
} else {
viper.AddConfigPath(configFile)
}
// Env variables need to be prefixed with "ALKOBOTE_"
viper.SetEnvPrefix("ALKOBOTE")
// Parses automatic the matching env variables
viper.AutomaticEnv()
// Reads the config
err := viper.ReadInConfig()
if err != nil {
log.WithFields(
log.Fields{
"error": err.Error(),
},
).Fatal("Fatal error config file")
}
c.setsConfig()
}
|