Browse Source

Module.New() does not need to return an error

master
Matthew Holt 6 years ago
parent
commit
2fd98cb040
  1. 6
      admin.go
  2. 7
      context.go
  3. 2
      modules.go
  4. 2
      modules/caddyhttp/caddyhttp.go
  5. 2
      modules/caddyhttp/caddylog/log.go
  6. 2
      modules/caddyhttp/fileserver/matcher.go
  7. 2
      modules/caddyhttp/fileserver/staticfiles.go
  8. 2
      modules/caddyhttp/headers/headers.go
  9. 18
      modules/caddyhttp/matchers.go
  10. 2
      modules/caddyhttp/reverseproxy/module.go
  11. 2
      modules/caddyhttp/rewrite/rewrite.go
  12. 2
      modules/caddyhttp/staticresp.go
  13. 4
      modules/caddyhttp/table.go
  14. 2
      modules/caddytls/acmemanager.go
  15. 2
      modules/caddytls/fileloader.go
  16. 2
      modules/caddytls/folderloader.go
  17. 2
      modules/caddytls/matchers.go
  18. 2
      modules/caddytls/tls.go
  19. 2
      storage.go

6
admin.go

@ -42,11 +42,7 @@ func StartAdmin(addr string) error {
///// END PPROF STUFF ////// ///// END PPROF STUFF //////
for _, m := range GetModules("admin") { for _, m := range GetModules("admin") {
moduleValue, err := m.New() route := m.New().(AdminRoute)
if err != nil {
return fmt.Errorf("initializing module '%s': %v", m.Name, err)
}
route := moduleValue.(AdminRoute)
mux.Handle(route.Pattern, route) mux.Handle(route.Pattern, route)
} }

7
context.go

@ -75,10 +75,7 @@ func (ctx Context) LoadModule(name string, rawMsg json.RawMessage) (interface{},
return nil, fmt.Errorf("module '%s' has no constructor", mod.Name) return nil, fmt.Errorf("module '%s' has no constructor", mod.Name)
} }
val, err := mod.New() val := mod.New()
if err != nil {
return nil, fmt.Errorf("initializing module '%s': %v", mod.Name, err)
}
// value must be a pointer for unmarshaling into concrete type // value must be a pointer for unmarshaling into concrete type
if rv := reflect.ValueOf(val); rv.Kind() != reflect.Ptr { if rv := reflect.ValueOf(val); rv.Kind() != reflect.Ptr {
@ -87,7 +84,7 @@ func (ctx Context) LoadModule(name string, rawMsg json.RawMessage) (interface{},
// fill in its config only if there is a config to fill in // fill in its config only if there is a config to fill in
if len(rawMsg) > 0 { if len(rawMsg) > 0 {
err = json.Unmarshal(rawMsg, &val) err := json.Unmarshal(rawMsg, &val)
if err != nil { if err != nil {
return nil, fmt.Errorf("decoding module config: %s: %v", mod.Name, err) return nil, fmt.Errorf("decoding module config: %s: %v", mod.Name, err)
} }

2
modules.go

@ -20,7 +20,7 @@ type Module struct {
// invoke methods on the returned value. // invoke methods on the returned value.
// It must return a pointer; if not, it // It must return a pointer; if not, it
// is converted into one. // is converted into one.
New func() (interface{}, error) New func() interface{}
} }
func (m Module) String() string { return m.Name } func (m Module) String() string { return m.Name }

2
modules/caddyhttp/caddyhttp.go

@ -22,7 +22,7 @@ func init() {
err := caddy2.RegisterModule(caddy2.Module{ err := caddy2.RegisterModule(caddy2.Module{
Name: "http", Name: "http",
New: func() (interface{}, error) { return new(App), nil }, New: func() interface{} { return new(App) },
}) })
if err != nil { if err != nil {

2
modules/caddyhttp/caddylog/log.go

@ -12,7 +12,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.middleware.log", Name: "http.middleware.log",
New: func() (interface{}, error) { return new(Log), nil }, New: func() interface{} { return new(Log) },
}) })
} }

2
modules/caddyhttp/fileserver/matcher.go

@ -11,7 +11,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.file", Name: "http.matchers.file",
New: func() (interface{}, error) { return new(FileMatcher), nil }, New: func() interface{} { return new(FileMatcher) },
}) })
} }

2
modules/caddyhttp/fileserver/staticfiles.go

@ -21,7 +21,7 @@ func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.responders.file_server", Name: "http.responders.file_server",
New: func() (interface{}, error) { return new(FileServer), nil }, New: func() interface{} { return new(FileServer) },
}) })
} }

2
modules/caddyhttp/headers/headers.go

@ -11,7 +11,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.middleware.headers", Name: "http.middleware.headers",
New: func() (interface{}, error) { return new(Headers), nil }, New: func() interface{} { return new(Headers) },
}) })
} }

18
modules/caddyhttp/matchers.go

@ -32,39 +32,39 @@ type (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.host", Name: "http.matchers.host",
New: func() (interface{}, error) { return matchHost{}, nil }, New: func() interface{} { return matchHost{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.path", Name: "http.matchers.path",
New: func() (interface{}, error) { return matchPath{}, nil }, New: func() interface{} { return matchPath{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.path_regexp", Name: "http.matchers.path_regexp",
New: func() (interface{}, error) { return new(matchPathRE), nil }, New: func() interface{} { return new(matchPathRE) },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.method", Name: "http.matchers.method",
New: func() (interface{}, error) { return matchMethod{}, nil }, New: func() interface{} { return matchMethod{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.query", Name: "http.matchers.query",
New: func() (interface{}, error) { return matchQuery{}, nil }, New: func() interface{} { return matchQuery{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.header", Name: "http.matchers.header",
New: func() (interface{}, error) { return matchHeader{}, nil }, New: func() interface{} { return matchHeader{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.header_regexp", Name: "http.matchers.header_regexp",
New: func() (interface{}, error) { return matchHeaderRE{}, nil }, New: func() interface{} { return matchHeaderRE{} },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.protocol", Name: "http.matchers.protocol",
New: func() (interface{}, error) { return new(matchProtocol), nil }, New: func() interface{} { return new(matchProtocol) },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.starlark_expr", Name: "http.matchers.starlark_expr",
New: func() (interface{}, error) { return new(matchStarlarkExpr), nil }, New: func() interface{} { return new(matchStarlarkExpr) },
}) })
} }

2
modules/caddyhttp/reverseproxy/module.go

@ -8,6 +8,6 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.responders.reverse_proxy", Name: "http.responders.reverse_proxy",
New: func() (interface{}, error) { return new(LoadBalanced), nil }, New: func() interface{} { return new(LoadBalanced) },
}) })
} }

2
modules/caddyhttp/rewrite/rewrite.go

@ -12,7 +12,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.middleware.rewrite", Name: "http.middleware.rewrite",
New: func() (interface{}, error) { return new(Rewrite), nil }, New: func() interface{} { return new(Rewrite) },
}) })
} }

2
modules/caddyhttp/staticresp.go

@ -11,7 +11,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.responders.static", Name: "http.responders.static",
New: func() (interface{}, error) { return new(Static), nil }, New: func() interface{} { return new(Static) },
}) })
} }

4
modules/caddyhttp/table.go

@ -9,12 +9,12 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.middleware.table", Name: "http.middleware.table",
New: func() (interface{}, error) { return new(tableMiddleware), nil }, New: func() interface{} { return new(tableMiddleware) },
}) })
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "http.matchers.table", Name: "http.matchers.table",
New: func() (interface{}, error) { return new(tableMatcher), nil }, New: func() interface{} { return new(tableMatcher) },
}) })
} }

2
modules/caddytls/acmemanager.go

@ -15,7 +15,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "tls.management.acme", Name: "tls.management.acme",
New: func() (interface{}, error) { return new(acmeManagerMaker), nil }, New: func() interface{} { return new(acmeManagerMaker) },
}) })
} }

2
modules/caddytls/fileloader.go

@ -11,7 +11,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "tls.certificates.load_files", Name: "tls.certificates.load_files",
New: func() (interface{}, error) { return fileLoader{}, nil }, New: func() interface{} { return fileLoader{} },
}) })
} }

2
modules/caddytls/folderloader.go

@ -16,7 +16,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "tls.certificates.load_folders", Name: "tls.certificates.load_folders",
New: func() (interface{}, error) { return folderLoader{}, nil }, New: func() interface{} { return folderLoader{} },
}) })
} }

2
modules/caddytls/matchers.go

@ -12,7 +12,7 @@ type MatchServerName []string
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "tls.handshake_match.host", Name: "tls.handshake_match.host",
New: func() (interface{}, error) { return MatchServerName{}, nil }, New: func() interface{} { return MatchServerName{} },
}) })
} }

2
modules/caddytls/tls.go

@ -15,7 +15,7 @@ import (
func init() { func init() {
caddy2.RegisterModule(caddy2.Module{ caddy2.RegisterModule(caddy2.Module{
Name: "tls", Name: "tls",
New: func() (interface{}, error) { return new(TLS), nil }, New: func() interface{} { return new(TLS) },
}) })
} }

2
storage.go

@ -11,7 +11,7 @@ import (
func init() { func init() {
RegisterModule(Module{ RegisterModule(Module{
Name: "caddy.storage.file_system", Name: "caddy.storage.file_system",
New: func() (interface{}, error) { return new(fileStorage), nil }, New: func() interface{} { return new(fileStorage) },
}) })
} }

Loading…
Cancel
Save