GoBlog/main.go

56 lines
838 B
Go
Raw Normal View History

2020-07-28 19:17:07 +00:00
package main
2020-08-01 15:49:46 +00:00
import (
"log"
"os"
"os/signal"
)
2020-07-28 19:17:07 +00:00
func main() {
2020-08-01 15:49:46 +00:00
// Initialize all things
log.Println("Initializing...")
2020-07-28 19:17:07 +00:00
err := initConfig()
if err != nil {
log.Fatal(err)
}
err = initDatabase()
if err != nil {
log.Fatal(err)
2020-08-01 15:49:46 +00:00
return
2020-07-28 19:17:07 +00:00
}
2020-08-01 15:49:46 +00:00
initMinify()
2020-09-19 10:57:14 +00:00
err = initTemplateAssets() // Needs minify
if err != nil {
log.Fatal(err)
return
}
2020-09-19 10:57:14 +00:00
initMarkdown()
initRendering() // Needs assets
2020-08-01 15:49:46 +00:00
// Prepare graceful shutdown
quit := make(chan os.Signal, 1)
// Start the server
go func() {
log.Println("Starting...")
err = startServer()
2020-07-28 19:52:56 +00:00
if err != nil {
2020-08-01 15:49:46 +00:00
log.Println("Failed to start server:")
log.Println(err)
2020-07-28 19:52:56 +00:00
}
2020-08-01 15:49:46 +00:00
quit <- os.Interrupt
2020-07-28 19:17:07 +00:00
}()
2020-08-01 15:49:46 +00:00
// Graceful shutdown
signal.Notify(quit, os.Interrupt)
<-quit
log.Println("Stopping...")
// Close DB
err = closeDb()
if err != nil {
log.Fatal(err)
2020-08-01 15:49:46 +00:00
return
}
2020-07-28 19:17:07 +00:00
}