package config import ( "log" "os" "time" ) func Init() Config { cfg := New() cfgInfo, err := getStructInfo(&cfg) if err != nil { log.Fatalf("Unable to initialize program: %v", err) } // get command line flags if err := cfg.parseFlags(cfgInfo); err != nil { log.Fatalf("Unable to initialize program: %v", err) } // set logging Level setLogLevel(&cfg) // set timezone & time format cfg.TZUTC, _ = time.LoadLocation("UTC") cfg.TZLocal, err = time.LoadLocation(cfg.TimeZoneLocal) if err != nil { cfg.Log.Error("Unable to parse timezone string", "error", err) os.Exit(1) } // print running config printRunningConfig(&cfg, cfgInfo) // return configuration return cfg }