forked from malston/bluemedora-firehose-nozzle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
89 lines (68 loc) · 2.47 KB
/
main.go
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright (c) 2016 Blue Medora, Inc. All rights reserved.
// This file is subject to the terms and conditions defined in the included file 'LICENSE.txt'.
package main
import (
"flag"
"github.com/BlueMedora/bluemedora-firehose-nozzle/bluemedorafirehosenozzle"
"github.com/BlueMedora/bluemedora-firehose-nozzle/logger"
"github.com/BlueMedora/bluemedora-firehose-nozzle/nozzleconfiguration"
"github.com/BlueMedora/bluemedora-firehose-nozzle/webserver"
)
const (
defaultConfigLocation = "./config/bluemedora-firehose-nozzle.json"
defaultLogDirectory = "./logs"
nozzleLogFile = "bm_nozzle.log"
nozzleLogName = "bm_firehose_nozzle"
nozzleLogLevel = "info"
webserverLogFile = "bm_server.log"
webserverLogName = "bm_server"
)
var (
//Mode to run nozzle in. Webserver mode is for debugging purposes only
runMode = flag.String("mode", "normal", "Mode to run nozzle `normal` or `webserver`")
logLevel = flag.String("log-level", nozzleLogLevel, "Set log level to control verbosity - defaults to info")
)
func main() {
flag.Parse()
if *runMode == "normal" {
normalSetup()
} else if *runMode == "webserver" {
standUpWebServer()
}
}
func normalSetup() {
logger.CreateLogDirectory(defaultLogDirectory)
logger := logger.New(defaultLogDirectory, nozzleLogFile, nozzleLogName, *logLevel)
logger.Debug("working log")
//Read in config
config, err := nozzleconfiguration.New(defaultConfigLocation, logger)
if err != nil {
logger.Fatalf("Error parsing config file: %s", err.Error())
}
//Setup and start nozzle
server := createWebServer(config)
nozzle := bluemedorafirehosenozzle.New(config, server, logger)
nozzle.Start()
if err != nil {
logger.Fatalf("Error while running nozzle: %s", err.Error())
}
}
func standUpWebServer() {
logger := logger.New(defaultLogDirectory, webserverLogFile, webserverLogName, *logLevel)
//Read in config
config, err := nozzleconfiguration.New(defaultConfigLocation, logger)
if err != nil {
logger.Fatalf("Error parsing config file: %s", err.Error())
}
server := webserver.New(config, logger)
logger.Info("Starting webserver")
errors := server.Start(webserver.DefaultKeyLocation, webserver.DefaultCertLocation)
select {
case err := <-errors:
logger.Fatalf("Error while running server: %s", err.Error())
}
}
func createWebServer(config *nozzleconfiguration.NozzleConfiguration) *webserver.WebServer {
logger := logger.New(defaultLogDirectory, webserverLogFile, webserverLogName, *logLevel)
return webserver.New(config, logger)
}