chore(sources): wrap error with source string

This commit is contained in:
Quentin McGaw
2022-02-20 03:04:16 +00:00
parent 920ad8b54b
commit ae0334c930
5 changed files with 18 additions and 2 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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)
}

View File

@@ -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 {

View File

@@ -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
}