th7/main.go

74 lines
1.3 KiB
Go
Raw Normal View History

2022-11-12 14:20:29 +00:00
package main
import (
2023-11-24 15:37:55 +00:00
"fmt"
2022-11-12 14:20:29 +00:00
"log"
2022-11-12 16:22:55 +00:00
"os"
"os/signal"
"syscall"
2023-12-12 21:07:04 +00:00
"th7/api"
2022-11-12 14:20:29 +00:00
"th7/config"
"th7/core"
"th7/db"
"th7/pcb"
"th7/ports"
2023-11-24 15:37:55 +00:00
"time"
"github.com/fatih/color"
2022-11-12 14:20:29 +00:00
)
func main() {
var pcbPort ports.PCBPort
var corePort ports.CorePort
var dbPort ports.DBPort
2023-12-05 17:22:12 +00:00
var apiPort ports.APIPort
2022-11-12 14:20:29 +00:00
var err error
2022-11-12 16:22:55 +00:00
kill := make(chan os.Signal, 1)
signal.Notify(kill,
syscall.SIGTERM,
syscall.SIGINT,
syscall.SIGHUP,
syscall.SIGQUIT)
2022-11-12 16:22:55 +00:00
2023-11-22 11:35:15 +00:00
cfg, err := config.Load()
2022-11-12 14:20:29 +00:00
if err != nil {
log.Fatalf("Error loading config: %v", err)
}
2023-11-22 11:35:15 +00:00
pcbPort, err = pcb.NewAdapter(cfg)
2022-11-12 14:20:29 +00:00
if err != nil {
log.Fatalf("Fatal error: %v\n", err)
}
defer pcbPort.Deinit()
2023-11-22 11:35:15 +00:00
corePort, err = core.NewAdapter(pcbPort, cfg)
2022-11-12 16:22:55 +00:00
if err != nil {
log.Fatalf("Error starting TH7 Adapter: %v\n", err)
}
2023-11-22 11:35:15 +00:00
dbPort, err = db.NewAdapter(corePort, cfg)
if err != nil {
log.Fatalf("Fatal error: %v\n", err)
}
defer dbPort.Close()
2022-11-12 14:20:29 +00:00
2023-11-24 15:37:55 +00:00
color.Set(color.FgHiRed)
fmt.Printf("Started on: %s\n", time.Now().Format(time.DateTime))
color.Unset()
2023-11-25 10:37:02 +00:00
2023-12-06 19:23:21 +00:00
// if noweb is false and HTTP/REST API is enabled then start web service
2023-12-12 21:07:04 +00:00
if !cfg.Board.NoWeb && cfg.API.Enabled {
apiPort = api.NewGinAdapter(corePort, cfg)
2023-12-06 19:23:21 +00:00
go apiPort.Run()
2023-11-25 10:37:02 +00:00
color.Set(color.FgHiGreen)
2023-12-12 21:07:04 +00:00
fmt.Printf("TH7 API is live on http://localhost:%d/\n", cfg.API.Port)
2023-11-25 10:37:02 +00:00
color.Unset()
}
2023-11-24 15:37:55 +00:00
2022-11-12 16:22:55 +00:00
sig := <-kill
log.Printf("Caught signal %v", sig)
2022-11-12 14:20:29 +00:00
}