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") }