olivetin/cmd/OliveTin/main.go

55 lines
1.0 KiB
Go

package main
import (
log "github.com/sirupsen/logrus"
restApi "github.com/jamesread/OliveTin/pkg/restApi"
grpcApi "github.com/jamesread/OliveTin/pkg/grpcApi"
config "github.com/jamesread/OliveTin/pkg/config"
"github.com/spf13/viper"
"os"
)
var (
cfg *config.Config;
)
func init() {
log.Info("OliveTin initializing");
log.SetLevel(log.DebugLevel) // Default to debug, to catch cfg issues
viper.AutomaticEnv();
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AddConfigPath("/etc/olivetin/")
if err := viper.ReadInConfig(); err != nil {
log.Panicf("Config file error %s", err);
};
cfg = config.DefaultConfig();
if err := viper.UnmarshalExact(cfg); err != nil {
log.Errorf("Config unmarshal error %+v", err)
os.Exit(1);
}
log.SetLevel(cfg.GetLogLevel())
viper.WatchConfig();
}
func main() {
log.WithFields(log.Fields {
"listenPortRestActions": cfg.ListenPortRestActions,
"listenPortWebUi": cfg.ListenPortWebUi,
}).Info("OliveTin started");
log.Debugf("%+v", cfg)
go grpcApi.Start()
restApi.Start();
}