Files
maingate/main.go
2023-06-21 14:33:29 +09:00

47 lines
1.2 KiB
Go

package main
import (
"context"
"math/rand"
"net/http"
"time"
common "repositories.action2quare.com/ayo/gocommon"
"repositories.action2quare.com/ayo/gocommon/flagx"
"repositories.action2quare.com/ayo/gocommon/logger"
"repositories.action2quare.com/ayo/maingate/core"
)
// linux : go build --ldflags="-X 'main.revision=$(git rev-parse --short HEAD)'"
// windows : for /f usebackq %F in (`git rev-parse --short HEAD`) do go build --ldflags="-X 'main.revision=%F'"
var revision = "0000000"
var prefix = flagx.String("prefix", "", "")
func main() {
flagx.Parse()
logger.Println("build revision =", revision)
rand.Seed(time.Now().UnixNano())
ctx, cancel := context.WithCancel(context.Background())
mg, err := core.New(ctx)
if err != nil {
logger.Error("core.New failed :", err)
panic(err)
}
serveMux := http.NewServeMux()
if err := mg.RegisterHandlers(ctx, serveMux, *prefix); err != nil {
logger.Error("RegisterHandlers failed :", err)
panic(err)
}
server := common.NewHTTPServer(serveMux)
logger.Println("maingate is started")
if err := server.Start(); err != nil {
logger.Error("maingate is stopped with error :", err)
}
cancel()
mg.Destructor()
}