From ae0334c930120b504bd71ebb45dd33a0841942e7 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sun, 20 Feb 2022 03:04:16 +0000 Subject: [PATCH] chore(sources): wrap error with source string --- internal/configuration/sources/env/reader.go | 2 ++ internal/configuration/sources/files/reader.go | 2 ++ internal/configuration/sources/mux/reader.go | 13 +++++++++++-- internal/configuration/sources/secrets/reader.go | 2 ++ internal/configuration/sources/source.go | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/internal/configuration/sources/env/reader.go b/internal/configuration/sources/env/reader.go index d1aa6ee3..64ea301e 100644 --- a/internal/configuration/sources/env/reader.go +++ b/internal/configuration/sources/env/reader.go @@ -23,6 +23,8 @@ func New(warner Warner) *Reader { } } +func (r *Reader) String() string { return "environment variables" } + func (r *Reader) Read() (settings settings.Settings, err error) { settings.VPN, err = r.readVPN() if err != nil { diff --git a/internal/configuration/sources/files/reader.go b/internal/configuration/sources/files/reader.go index 78789166..56981574 100644 --- a/internal/configuration/sources/files/reader.go +++ b/internal/configuration/sources/files/reader.go @@ -13,6 +13,8 @@ func New() *Reader { return &Reader{} } +func (r *Reader) String() string { return "files" } + func (r *Reader) Read() (settings settings.Settings, err error) { settings.VPN, err = r.readVPN() if err != nil { diff --git a/internal/configuration/sources/mux/reader.go b/internal/configuration/sources/mux/reader.go index f6564a95..079c48d1 100644 --- a/internal/configuration/sources/mux/reader.go +++ b/internal/configuration/sources/mux/reader.go @@ -2,6 +2,7 @@ package mux import ( "fmt" + "strings" "github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/configuration/sources" @@ -19,6 +20,14 @@ func New(sources ...sources.Source) *Reader { } } +func (r *Reader) String() string { + sources := make([]string, len(r.sources)) + for i := range r.sources { + sources[i] = r.sources[i].String() + } + return strings.Join(sources, ", ") +} + // Read reads the settings for each source, merging unset fields // with field set by the next source. // It then set defaults to remaining unset fields. @@ -26,7 +35,7 @@ func (r *Reader) Read() (settings settings.Settings, err error) { for _, source := range r.sources { settingsFromSource, err := source.Read() if err != nil { - return settings, fmt.Errorf("reading from source %T: %w", source, err) + return settings, fmt.Errorf("reading from %s: %w", source, err) } settings.MergeWith(settingsFromSource) } @@ -42,7 +51,7 @@ func (r *Reader) ReadHealth() (settings settings.Health, err error) { for _, source := range r.sources { settingsFromSource, err := source.ReadHealth() if err != nil { - return settings, fmt.Errorf("reading from source %T: %w", source, err) + return settings, fmt.Errorf("reading from %s: %w", source, err) } settings.MergeWith(settingsFromSource) } diff --git a/internal/configuration/sources/secrets/reader.go b/internal/configuration/sources/secrets/reader.go index 8ae754de..10b4e8a5 100644 --- a/internal/configuration/sources/secrets/reader.go +++ b/internal/configuration/sources/secrets/reader.go @@ -14,6 +14,8 @@ func New() *Reader { return &Reader{} } +func (r *Reader) String() string { return "secret files" } + func (r *Reader) Read() (settings settings.Settings, err error) { settings.VPN, err = readVPN() if err != nil { diff --git a/internal/configuration/sources/source.go b/internal/configuration/sources/source.go index bd805fb9..bdb434a2 100644 --- a/internal/configuration/sources/source.go +++ b/internal/configuration/sources/source.go @@ -5,4 +5,5 @@ import "github.com/qdm12/gluetun/internal/configuration/settings" type Source interface { Read() (settings settings.Settings, err error) ReadHealth() (settings settings.Health, err error) + String() string }