123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package main
- import (
- "flag"
- "git.swzry.com/zry/zry-go-program-framework/svcfw"
- "git.swzry.com/zry/zry-go-program-framework/websubsvc"
- "net/http"
- "os"
- )
- var ArgsBindAddr string
- var ArgsWWWRoot string
- var ArgsHelp bool
- var ArgsVueHistoryMode bool
- var App *svcfw.AppFramework
- var SubSvcWeb *websubsvc.WebSubService
- var WebLogic *WebLogicClass
- var WWWRootFS websubsvc.IFilesystem
- func main() {
- flag.BoolVar(&ArgsHelp, "h", false, "print help")
- flag.BoolVar(&ArgsVueHistoryMode, "v", false, "enable vue history mode")
- flag.StringVar(&ArgsBindAddr, "b", ":8080", "bind address")
- flag.StringVar(&ArgsWWWRoot, "w", "./wwwroot", "wwwroot path. default is './wwwroot'")
- flag.Parse()
- if ArgsHelp {
- flag.PrintDefaults()
- return
- }
- App = svcfw.NewAppFramework(true, "main")
- App.InitConsoleLogBackend(os.Stdout, "")
- WWWRootFS = websubsvc.NewOsFsWithPrefix(ArgsWWWRoot)
- WebLogic = NewWebLogic(ArgsBindAddr)
- SubSvcWeb = websubsvc.NewWebSubService(WebLogic)
- App.AddSubSvc("web", SubSvcWeb)
- App.Info("preparing sub services...")
- err := App.Prepare()
- if err != nil {
- App.Panic("error in preparing sub services: ", err)
- }
- App.Info("start running sub services...")
- err = App.Run()
- App.Info("all sub services end.")
- if err != nil {
- App.Panic("error in running sub services: ", err)
- }
- }
- type WebLogicClass struct {
- bindAddr string
- }
- func NewWebLogic(bindAddr string) *WebLogicClass {
- l := &WebLogicClass{
- bindAddr: bindAddr,
- }
- return l
- }
- func (w WebLogicClass) GetHttpServer(ctx *websubsvc.WebSubServiceContext) *http.Server {
- return ctx.MakeHttpServer(w.bindAddr, nil)
- }
- func (w WebLogicClass) Prepare(ctx *websubsvc.WebSubServiceContext) error {
- ctx.DefaultMiddleware("access", "err500")
- ctx.Info("prepare URL router...")
- ctx.EnableFrontend(WWWRootFS, ArgsVueHistoryMode)
- return nil
- }
|