https://github.com/crgimenes/goConfig
Configuration loader to use in Go projects
https://github.com/crgimenes/goConfig
config go golang
Last synced: 4 months ago
JSON representation
Configuration loader to use in Go projects
- Host: GitHub
- URL: https://github.com/crgimenes/goConfig
- Owner: crgimenes
- License: mit
- Created: 2022-05-30T05:49:16.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-04T10:30:14.000Z (over 1 year ago)
- Last Synced: 2024-05-29T21:20:13.728Z (over 1 year ago)
- Topics: config, go, golang
- Language: Go
- Homepage:
- Size: 216 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go-with-stars - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go - goconfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - ★ 83 (Configuration)
- awesome-go - goConfig
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go-cn - goConfig
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go-plus - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - :arrow_down:3 - :star:70 (Configuration / Advanced Console UIs)
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Standard CLI)
- awesome-go-cn - goConfig
- awesome-go - goConfig - 解析一个结构作为输入,并使用来自命令行,环境变量和配置文件的参数填充此结构的字段。 (<span id="组态-configuration">组态 Configuration</span> / <span id="高级控制台用户界面-advanced-console-uis">高级控制台用户界面 Advanced Console UIs</span>)
- awesome-go-cn - goConfig
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Advanced Console UIs)
- awesome-Char - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Advanced Console UIs)
- awesome-go-cn - goConfig
- awesome-go - goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. (Configuration / Advanced Console UIs)
README
# config
[](https://tldrlegal.com/license/mit-license)
config uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
## Install
```
go get crg.eti.br/go/config
```
## Example
```go
package main
import "crg.eti.br/go/config"
/*
step 1: Declare your configuration struct,
it may or may not contain substructures.
*/
type mongoDB struct {
Host string `cfgDefault:"example.com" cfgRequired:"true"`
Port int `cfgDefault:"999"`
}
type configTest struct {
Domain string
DebugMode bool `json:"db" cfg:"db" cfgDefault:"false"`
MongoDB mongoDB
IgnoreMe string `cfg:"-"`
}
func main() {
// step 2: Instantiate your structure.
config := configTest{}
// step 3: Pass the instance pointer to the parser
err := config.Parse(&config)
if err != nil {
println(err)
return
}
/*
The parser populated your struct with the data
it took from environment variables and command
line and now you can use it.
*/
println("config.Domain......:", config.Domain)
println("config.DebugMode...:", config.DebugMode)
println("config.MongoDB.Host:", config.MongoDB.Host)
println("config.MongoDB.Port:", config.MongoDB.Port)
}
```
With the example above try environment variables like *$DOMAIN* or *$MONGODB_HOST* and run the example again to see what happens.
You can also try using parameters on the command line, try -h to see the help.
## Contributing
- Fork the repo on GitHub
- Clone the project to your own machine
- Create a *branch* with your modifications `git checkout -b fantastic-feature`.
- Then *commit* your changes `git commit -m 'Implementation of new fantastic feature'`
- Make a *push* to your *branch* `git push origin fantastic-feature`.
- Submit a **Pull Request** so that we can review your changes