mirror of
https://github.com/yusing/godoxy.git
synced 2026-02-19 17:07:42 +01:00
This is a large-scale refactoring across the codebase that replaces the custom `gperr.Error` type with Go's standard `error` interface. The changes include: - Replacing `gperr.Error` return types with `error` in function signatures - Using `errors.New()` and `fmt.Errorf()` instead of `gperr.New()` and `gperr.Errorf()` - Using `%w` format verb for error wrapping instead of `.With()` method - Replacing `gperr.Subject()` calls with `gperr.PrependSubject()` - Converting error logging from `gperr.Log*()` functions to zerolog's `.Err().Msg()` pattern - Update NewLogger to handle multiline error message - Updating `goutils` submodule to latest commit This refactoring aligns with Go idioms and removes the dependency on custom error handling abstractions in favor of standard library patterns.
31 lines
664 B
Go
31 lines
664 B
Go
package autocert
|
|
|
|
import (
|
|
gperr "github.com/yusing/goutils/errs"
|
|
)
|
|
|
|
func (p *Provider) setupExtraProviders() error {
|
|
p.sniMatcher = sniMatcher{}
|
|
if len(p.cfg.Extra) == 0 {
|
|
return nil
|
|
}
|
|
|
|
p.extraProviders = make([]*Provider, 0, len(p.cfg.Extra))
|
|
|
|
errs := gperr.NewBuilder("setup extra providers error")
|
|
for _, extra := range p.cfg.Extra {
|
|
user, legoCfg, err := extra.AsConfig().GetLegoConfig()
|
|
if err != nil {
|
|
errs.Add(p.fmtError(err))
|
|
continue
|
|
}
|
|
ep, err := NewProvider(extra.AsConfig(), user, legoCfg)
|
|
if err != nil {
|
|
errs.Add(p.fmtError(err))
|
|
continue
|
|
}
|
|
p.extraProviders = append(p.extraProviders, ep)
|
|
}
|
|
return errs.Error()
|
|
}
|