diff options
Diffstat (limited to 'src/main.go')
-rw-r--r-- | src/main.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/main.go b/src/main.go new file mode 100644 index 0000000..ecb400e --- /dev/null +++ b/src/main.go @@ -0,0 +1,64 @@ +package main + +import ( + "fmt" + "strings" + + "git.darknebu.la/chaosdorf/freitagsfoo/src/db" + "github.com/sirupsen/logrus" + "github.com/spf13/viper" +) + +func main() { + initConfig() + initLogging() + + pgdb := db.Connect() + defer db.Disconnect(pgdb) + + initDB(pgdb) + + initHTTPServer() +} + +func initConfig() { + logrus.Info("Init config") + + viper.SetConfigName("config") + viper.AddConfigPath(".") + viper.AddConfigPath("/go/src/app/") + viper.AutomaticEnv() + + viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) + + err := viper.ReadInConfig() + if err != nil { + panic(fmt.Errorf("Fatal error config file: %s", err)) + } + + // var conf structs.Configuration + // err = viper.Unmarshal(&conf) + // if err != nil { + // log.Fatal("unable to decode into struct: %v", err) + // } +} + +func initLogging() { + logrus.Info("Init logging") + switch viper.GetString("verbose.level") { + case "1": + logrus.SetLevel(logrus.PanicLevel) + case "2": + logrus.SetLevel(logrus.FatalLevel) + case "3": + logrus.SetLevel(logrus.ErrorLevel) + case "4": + logrus.SetLevel(logrus.WarnLevel) + case "5": + logrus.SetLevel(logrus.InfoLevel) + case "6": + logrus.SetLevel(logrus.DebugLevel) + case "7": + logrus.SetLevel(logrus.TraceLevel) + } +} |