package main import ( "context" "flag" "math/rand" "net/http" "time" common "repositories.action2quare.com/ayo/gocommon" "repositories.action2quare.com/ayo/maingate/core" "repositories.action2quare.com/ayo/gocommon/logger" ) // 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" func main() { if !flag.Parsed() { flag.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, *common.PrefixPtr); 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() }