diff options
Diffstat (limited to 'glsamaker.go')
-rw-r--r-- | glsamaker.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/glsamaker.go b/glsamaker.go new file mode 100644 index 0000000..5c7f6ec --- /dev/null +++ b/glsamaker.go @@ -0,0 +1,60 @@ +package main + +import ( + "glsamaker/pkg/app" + "glsamaker/pkg/config" + "glsamaker/pkg/cveimport" + "glsamaker/pkg/logger" + "fmt" + "io" + "io/ioutil" + "os" + "time" +) + +func printHelp() { + fmt.Println("Please specific one of the following options:") + fmt.Println(" glsamaker --update -- incrementally import cve's and update the database") + fmt.Println(" glsamaker --full-update -- import all cve's and update the database") + fmt.Println(" glsamaker --serve -- serve the application") +} + +func isCommand(command string) bool { + return len(os.Args) > 1 && os.Args[1] == command +} + +func main() { + + waitForPostgres() + + errorLogFile := logger.CreateLogFile(config.LogFile()) + defer errorLogFile.Close() + initLoggers(os.Stdout, errorLogFile) + + if isCommand("--serve") { + app.Serve() + } else if isCommand("--full-update") { + cveimport.FullUpdate() + } else if isCommand("--update") { + cveimport.Update() + } else { + printHelp() + } + +} + +// initialize the loggers depending on whether +// config.debug is set to true +func initLoggers(infoHandler io.Writer, errorHandler io.Writer) { + if config.Debug() == "true" { + logger.Init(os.Stdout, infoHandler, errorHandler) + } else { + logger.Init(ioutil.Discard, infoHandler, errorHandler) + } +} + +// TODO this has to be solved differently +// wait for postgres to come up +func waitForPostgres() { + time.Sleep(5 * time.Second) +} |