Initial commit: Import from /home/simon/test/ac
This commit is contained in:
49
src/cmd/main.go
Normal file
49
src/cmd/main.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime/debug"
|
||||
"syscall"
|
||||
|
||||
"ac/internal/logger"
|
||||
"ac/internal/version"
|
||||
"ac/pkg/factory"
|
||||
"ac/pkg/service"
|
||||
)
|
||||
|
||||
func main() {
|
||||
defer func() {
|
||||
if p := recover(); p != nil {
|
||||
// Print stack for panic to log. Fatalf() will let program exit.
|
||||
logger.MainLog.Fatalf("panic: %v\n%s", p, string(debug.Stack()))
|
||||
}
|
||||
}()
|
||||
|
||||
logger.MainLog.Infoln("AC version: ", version.GetVersionAndHash())
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
sigCh := make(chan os.Signal, 1)
|
||||
signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)
|
||||
|
||||
go func() {
|
||||
<-sigCh // Wait for interrupt signal to gracefully shutdown
|
||||
cancel() // Notify each goroutine and wait them stopped
|
||||
}()
|
||||
|
||||
cfg, err := factory.ReadConfig()
|
||||
if err != nil {
|
||||
logger.MainLog.Errorf("AC Run error: %v\n", err)
|
||||
return
|
||||
}
|
||||
factory.AcConfig = cfg
|
||||
|
||||
ac, err := service.NewApp(ctx, cfg)
|
||||
if err != nil {
|
||||
logger.MainLog.Errorf("AC Run error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
ac.Start()
|
||||
}
|
||||
Reference in New Issue
Block a user