internal/secretreader/secretreader.go (20 lines of code) (raw):

// Package secretreader provides functionality for securely reading secret values from files. // It handles file reading, whitespace trimming, and validation to ensure that secrets // are properly loaded. The package implements error handling for common issues such as // missing files or empty content. package secretreader import ( "bytes" "errors" "fmt" "os" "path/filepath" ) // ErrEmptySecret is returned when a secret file is empty or contains only whitespace var ErrEmptySecret = errors.New("secret is empty after trimming whitespace") // ReadSecret reads and trims a secret from a file func ReadSecret(path string) ([]byte, error) { f, err := os.ReadFile(filepath.Clean(path)) if err != nil { return nil, fmt.Errorf("failed to read secret file %q: %w", path, err) } secret := bytes.TrimSpace(f) if len(secret) == 0 { return nil, fmt.Errorf("failed to read secret file %q: %w", path, ErrEmptySecret) } return secret, nil }