env API

env

package

API reference for the env package.

S
struct

Provider

Provider implements source.Provider for environment variables.

pkg/source/env/provider.go:12-14
type Provider struct

Methods

Name
Method

Name returns "env".

Returns

string
func (*Provider) Name() string
{
	return "env"
}
Load
Method

Load reads all environment variables, filtering by prefix if set.

Parameters

Returns

map[string]any
error
func (*Provider) Load(ctx context.Context) (map[string]any, error)
{
	data := make(map[string]any)
	env := os.Environ()

	for _, kv := range env {
		k, v, ok := strings.Cut(kv, "=")
		if !ok {
			continue
		}

		if p.Prefix != "" {
			if strings.HasPrefix(k, p.Prefix) {
				key := strings.TrimPrefix(k, p.Prefix)
				if strings.HasSuffix(p.Prefix, "_") {
					// Prefix include underscore
				} else if strings.HasPrefix(key, "_") {
					key = strings.TrimPrefix(key, "_")
				}
				data[strings.ToLower(key)] = v
			}
		} else {
			data[strings.ToLower(k)] = v
		}
	}
	return data, nil
}

Fields

Name Type Description
Prefix string
F
function

New

New creates a new Environment Variable provider with an optional prefix.

Parameters

prefix
string

Returns

pkg/source/env/provider.go:17-19
func New(prefix string) source.Provider

{
	return &Provider{Prefix: prefix}
}