fixup load options using

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2024-04-17 16:55:13 +03:00
parent 6b27204711
commit e8e336a99f

13
file.go
View File

@ -76,11 +76,20 @@ func (c *fileConfig) Load(ctx context.Context, opts ...config.LoadOption) error
}
path := c.path
transformer := c.transformer
reader := c.reader
options := config.NewLoadOptions(opts...)
if options.Context != nil {
if v, ok := options.Context.Value(pathKey{}).(string); ok && v != "" {
path = v
}
if v, ok := c.opts.Context.Value(transformerKey{}).(transform.Transformer); ok {
transformer = v
}
if v, ok := c.opts.Context.Value(readerKey{}).(io.Reader); ok {
reader = v
}
}
var fp io.Reader
@ -89,7 +98,7 @@ func (c *fileConfig) Load(ctx context.Context, opts ...config.LoadOption) error
if c.path != "" {
fp, err = os.OpenFile(path, os.O_RDONLY, os.FileMode(0o400))
} else if c.reader != nil {
fp = c.reader
fp = reader
} else {
err = fmt.Errorf("Path or Reader must be specified")
}
@ -114,7 +123,7 @@ func (c *fileConfig) Load(ctx context.Context, opts ...config.LoadOption) error
}
var r io.Reader
if c.transformer != nil {
if transformer != nil {
r = transform.NewReader(fp, c.transformer)
} else {
r = fp