Skip to content

Env prefixes doesn't work with pointers  #202

@jekabolt

Description

@jekabolt

Example

package main

import (
	"encoding/json"
	"fmt"
	"log"
	"os"

	"github.com/caarlos0/env/v6"
)

type Test struct {
	Str string `env:"TEST"`
}
type ComplexConfig struct {
	Foo   *Test `envPrefix:"FOO_"`
	Bar   *Test `envPrefix:"BAR_"`
	Clean *Test
}

func main() {
	os.Setenv("FOO_TEST", "kek")
	os.Setenv("BAR_TEST", "lel")

	cfg := ComplexConfig{
		Foo:   &Test{},
		Bar:   &Test{},
		Clean: &Test{},
	}
	err := env.Parse(&cfg)
	if err != nil {
		log.Fatal(err)
	}
	confBytes, _ := json.Marshal(cfg)
	fmt.Printf("%s", confBytes)
}

output :

{"Foo":{"Str":""},"Bar":{"Str":""},"Clean":{"Str":""}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions