th7/main.go
2023-11-21 14:45:14 +00:00

59 lines
1007 B
Go

package main
import (
"log"
"os"
"os/signal"
"syscall"
"th7/config"
"th7/core"
"th7/db"
"th7/pcb"
"th7/ports"
"th7/web"
)
func main() {
var pcbPort ports.PCBPort
var corePort ports.CorePort
var dbPort ports.DBPort
var webPort ports.WebPort
var err error
kill := make(chan os.Signal, 1)
signal.Notify(kill,
syscall.SIGTERM,
syscall.SIGINT,
syscall.SIGHUP,
syscall.SIGQUIT)
config, err := config.Load()
if err != nil {
log.Fatalf("Error loading config: %v", err)
}
pcbPort, err = pcb.NewAdapter(config)
if err != nil {
log.Fatalf("Fatal error: %v\n", err)
}
defer pcbPort.Deinit()
corePort, err = core.NewAdapter(pcbPort, config)
if err != nil {
log.Fatalf("Error starting TH7 Adapter: %v\n", err)
}
dbPort, err = db.NewAdapter(corePort, config)
if err != nil {
log.Fatalf("Fatal error: %v\n", err)
}
defer dbPort.Close()
webPort = web.NewGinAdapter(corePort, config.Board.Port)
go webPort.Run()
sig := <-kill
log.Printf("Caught signal %v", sig)
}