master
go 24 lines 601 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package secretresolver
4
5 import (
6 "context"
7 "fmt"
8 "os"
9 "path/filepath"
10 "strings"
11 )
12
13 func (r *Resolver) resolveFile(ctx context.Context, path, original string) (string, error) {
14 if !filepath.IsAbs(path) {
15 return "", fmt.Errorf("resolving secret '%s': file path must be absolute, got '%s'", original, path)
16 }
17 data, err := os.ReadFile(path)
18 if err != nil {
19 return "", fmt.Errorf("resolving secret '%s': %w", original, err)
20 }
21 value := strings.TrimSpace(string(data))
22 logResolved(ctx, "resolved secret via file '%s'", path)
23 return value, nil
24 }