47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"math/rand"
|
|
"net/http"
|
|
"time"
|
|
|
|
"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 := gocommon.NewHTTPServer(serveMux)
|
|
logger.Println("maingate is started")
|
|
if err := server.Start(); err != nil {
|
|
logger.Error("maingate is stopped with error :", err)
|
|
}
|
|
cancel()
|
|
mg.Destructor()
|
|
}
|