Files
maingate/main.go
2023-11-24 00:18:04 +09:00

48 lines
1.1 KiB
Go

package main
import (
"context"
"net/http"
"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)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
mg, err := core.New(ctx)
if err != nil {
logger.Error("core.New failed :", err)
return
}
defer mg.Destructor()
serveMux := http.NewServeMux()
if err := mg.RegisterHandlers(ctx, serveMux, *prefix); err != nil {
logger.Error("RegisterHandlers failed :", err)
return
}
server := gocommon.NewHTTPServer(serveMux)
logger.Println("maingate is started")
if err := server.Start(); err != nil {
logger.Error("maingate is stopped with error :", err)
}
logger.Println("maingate is terminated")
}