updated ezconf
This commit is contained in:
@@ -6,11 +6,11 @@ type Integration interface {
|
||||
// Name returns the name to use when registering the config
|
||||
Name() string
|
||||
|
||||
// PackagePath returns the path to the package for source parsing
|
||||
PackagePath() string
|
||||
// ConfigPointer returns a pointer to the config struct for tag parsing
|
||||
ConfigPointer() any
|
||||
|
||||
// ConfigFunc returns the ConfigFromEnv function
|
||||
ConfigFunc() func() (interface{}, error)
|
||||
ConfigFunc() func() (any, error)
|
||||
|
||||
// GroupName returns the display name for grouping environment variables
|
||||
GroupName() string
|
||||
@@ -18,15 +18,12 @@ type Integration interface {
|
||||
|
||||
// RegisterIntegration registers a package that implements the Integration interface
|
||||
func (cl *ConfigLoader) RegisterIntegration(integration Integration) error {
|
||||
// Add package path
|
||||
pkgPath := integration.PackagePath()
|
||||
if err := cl.AddPackagePath(pkgPath); err != nil {
|
||||
// Add config struct for tag parsing
|
||||
configPtr := integration.ConfigPointer()
|
||||
if err := cl.AddConfigStruct(configPtr, integration.GroupName()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Store group name for this package
|
||||
cl.groupNames[pkgPath] = integration.GroupName()
|
||||
|
||||
// Add config function
|
||||
if err := cl.AddConfigFunc(integration.Name(), integration.ConfigFunc()); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user