Comments (3)
This is something which I've been considering to add and I'll get down it to when I find some free time (hopefully soon!).
I'm not entirely sure what you mean in your example, where would ${FOOBAR}
be defined, can you please elaborate?
These are my thoughts regarding environment variables. Let's say you have the following struct defined:
type Config struct {
type Server struct {
Level string `fig:"level"`
} `fig:"server"`
}
You'd be able to set the Level
field using environment variable SERVER_LEVEL
. There would be additional options such as adding a prefix to all variables, i.e. MYAPP_SERVER_LEVEL
and a custom separator i.e. MYAPP-SERVER-LEVEL
.
Please share your thoughts!
from fig.
I prefer the way I outlined above since it keeps definitions the same, in contrast to your suggestion which introduces additional syntax specific to environment variables. Loading from the environment however should be disabled by default in order to avoid accidental loading of fields, with an option for enabling it.
from fig.
E.g. in the config:
path: '/srv/projects/${FOOBAR}'
Or maybe even in the struct tags, but then they would have to provide the whole value.
from fig.
Related Issues (17)
- fig should be more customizable via hooks HOT 1
- Allow for multiple possible file names HOT 1
- add mapstructure squash support HOT 1
- Default bool items not being set correctly when not present in config HOT 2
- Fields of type time.Duration should fail when the input is an integer HOT 1
- Add a strict parsing alternative which disallows unknown fields
- Make TOML / YAML dependency optional, somehow HOT 4
- Setting config value to "zero" in file takes default value HOT 1
- validate a values of map HOT 4
- Feature request: auto create config file if not found HOT 5
- Defalut values are not applied HOT 6
- Feature request: custom type unmarshalling HOT 4
- feat: being able to add env name for a specific field HOT 6
- Add an option to explicitly set which config file to use HOT 2
- Make it possible to use only environment variables (with no config file)
- Feature request: Updating configuration files
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 fig.