Comments (4)
Had to fix it for my project so ended up creating a pull request anyway: #15
from envconfig.
We still get this problem when adding a tag. For example, in the code bellow I expected to fill the T.Thing
only when there's a MYAPP_THING
environment variable. But it accepts a THING
environment variable.
package main
import (
"fmt"
"os"
"github.com/kelseyhightower/envconfig"
)
type T struct {
Thing string `envconfig:"thing"`
}
func main() {
os.Setenv("THING", "123")
t := T{}
envconfig.Process("myapp", &t)
fmt.Printf("This should be empty: %v", t.Thing)
}
This problem was introduced by the varInfo.Alt
attribute in PR #61. We use the Alt
whenever the varInfo.Key
wasn't found, but Alt
doesn't have the prefix in it. Is there any reason to why we don't add prefix to varInfo.Alt
? @davidkbainbridge
from envconfig.
@rafaeljusto Attempting to think back, so please be patient ...
As I recall when I was doing the update the alt
specification was documented as not using the prefix, but instead being the directly used for looking up a value. I believe, but haven't verified, that this is how the tests cases were designed as well.
from envconfig.
You are right! This behavior is much older than your PR. It was introduced in the commit fab02b3 and is also documented in README:
If envconfig can't find an environment variable in the form PREFIX_MYVAR, and there is a struct tag defined, it will try to populate your variable with an environment variable that directly matches the envconfig tag in your struct definition
Thanks!
from envconfig.
Related Issues (20)
- Support for map[string]interface{} HOT 1
- environment variable does not precede default envconfig value in struct HOT 1
- Add support for getting a FlagSet from envconfig HOT 1
- Possible to populate fields discretely for a slice of structs? HOT 4
- Syntax for map of structs or other maps HOT 1
- envconfig does not reach nested structs HOT 3
- Feature Request: Ability to get list of ENV variables HOT 2
- Var not found after being exported HOT 1
- Maps configuration with value including colon character HOT 3
- Incorrectly reading long strings HOT 1
- time.Duration support for days notation
- Support a second API func to control environments source
- Set `split_words` as a global option HOT 4
- support optional trim
- Error message from required field should include prefix if specified. HOT 1
- Required by default
- Support for conditional requirement of variables
- Is this project still maintained? HOT 5
- Feature Request: Make usage available in machine processable format
- Invalid time fields are parsed without error HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envconfig.