|
|
|
@ -34,46 +34,58 @@ var (
|
|
|
|
|
_builtAt string |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func createComponents(app components.Application) (components.Logger, components.Server, error) { |
|
|
|
|
config, err := config.Load(app) |
|
|
|
|
func buildComponents(ccs *components.Components) error { |
|
|
|
|
config, err := config.Load(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "config") /////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "config") ///////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
logger, err := logger.Build(app, config) |
|
|
|
|
ccs.Config = config |
|
|
|
|
|
|
|
|
|
logger, err := logger.Build(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "logger") /////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "logger") ///////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
crypto, err := crypto.Build(app) |
|
|
|
|
ccs.Logger = logger |
|
|
|
|
|
|
|
|
|
crypto, err := crypto.Build(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "crypto") /////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "crypto") ///////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
storage, err := storage.Build(app, config, logger, crypto) |
|
|
|
|
ccs.Crypto = crypto |
|
|
|
|
|
|
|
|
|
storage, err := storage.Build(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "storage") ////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "storage") //////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
model, err := model.Build(logger, storage) |
|
|
|
|
ccs.Storage = storage |
|
|
|
|
|
|
|
|
|
model, err := model.Build(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "model") //////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "model") ////////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err := demo.Build(app, logger, model); err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "demo") ///////////////////////////////////////////////////////////////
|
|
|
|
|
ccs.Model = model |
|
|
|
|
|
|
|
|
|
if err := demo.Build(ccs); err != nil { |
|
|
|
|
return errors.WithMessage(err, "demo") /////////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
router := router.Build(logger) |
|
|
|
|
ccs.Router = router.Build(ccs) |
|
|
|
|
|
|
|
|
|
server, err := server.Build(config, logger, router) |
|
|
|
|
server, err := server.Build(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, nil, errors.WithMessage(err, "server") /////////////////////////////////////////////////////////////
|
|
|
|
|
return errors.WithMessage(err, "server") ///////////////////////////////////////////////////////////////////////
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
api.Build(logger, router, model) |
|
|
|
|
ccs.Server = server |
|
|
|
|
|
|
|
|
|
api.Build(ccs) |
|
|
|
|
|
|
|
|
|
return logger, server, nil |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func waitEnd(server components.Server) (*sync.WaitGroup, chan struct{}) { |
|
|
|
@ -110,12 +122,14 @@ func run() error {
|
|
|
|
|
return app.OnError(err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
logger, server, err := createComponents(app) |
|
|
|
|
ccs := components.New(app) |
|
|
|
|
|
|
|
|
|
err := buildComponents(ccs) |
|
|
|
|
if err != nil { |
|
|
|
|
return app.OnError(err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
logger.Info( //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
ccs.Logger.Info( //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
"APP", |
|
|
|
|
"id", app.ID(), |
|
|
|
|
"name", app.Name(), |
|
|
|
@ -124,11 +138,11 @@ func run() error {
|
|
|
|
|
"pid", os.Getpid(), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
group, endCh := waitEnd(server) |
|
|
|
|
group, endCh := waitEnd(ccs.Server) |
|
|
|
|
|
|
|
|
|
demo.Start() |
|
|
|
|
|
|
|
|
|
err = server.Start() |
|
|
|
|
err = ccs.Server.Start() |
|
|
|
|
|
|
|
|
|
close(endCh) |
|
|
|
|
|
|
|
|
@ -136,7 +150,7 @@ func run() error {
|
|
|
|
|
|
|
|
|
|
group.Wait() |
|
|
|
|
|
|
|
|
|
logger.Info( //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
ccs.Logger.Info( //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
"END", |
|
|
|
|
"uptime", time.Since(app.StartedAt()).Round(time.Second).String(), |
|
|
|
|
) |
|
|
|
|