github.com/pavlo67/common@v0.5.3/common/server_http/server_http_jschmhr/jschmhr_starter.go (about) 1 package server_http_jschmhr 2 3 import ( 4 "github.com/pkg/errors" 5 6 "github.com/pavlo67/common/common" 7 "github.com/pavlo67/common/common/config" 8 "github.com/pavlo67/common/common/joiner" 9 "github.com/pavlo67/common/common/logger" 10 "github.com/pavlo67/common/common/server_http" 11 "github.com/pavlo67/common/common/starter" 12 ) 13 14 func Starter() starter.Operator { 15 return &server_http_jschmhrStarter{} 16 } 17 18 var l logger.Operator 19 var _ starter.Operator = &server_http_jschmhrStarter{} 20 21 type server_http_jschmhrStarter struct{} 22 23 func (shjs *server_http_jschmhrStarter) Name() string { 24 return logger.GetCallInfo().PackageName 25 } 26 27 func (shjs *server_http_jschmhrStarter) Run(cfg *config.Envs, options common.Map, joinerOp joiner.Operator, l_ logger.Operator) error { 28 l = l_ 29 interfaceKey := joiner.InterfaceKey(options.StringDefault("interface_key", string(server_http.InterfaceKey))) 30 31 configKey := options.StringDefault("config_key", "server_http") 32 var config server_http.ConfigStarter 33 if err := cfg.Value(configKey, &config); err != nil { 34 return err 35 } 36 37 // TODO!!! customize it 38 var secretENVs []string 39 40 srvOp, err := New(config.Port, config.TLSCertFile, config.TLSKeyFile, secretENVs) 41 if err != nil { 42 return errors.Wrap(err, "on server_http_jschmhr.New()") 43 } 44 45 if err = joinerOp.Join(srvOp, interfaceKey); err != nil { 46 return errors.Wrapf(err, "can't join *serverHTTPJschmhr{} as server_http.Operator with key '%s'", interfaceKey) 47 } 48 49 return nil 50 51 }