This commit is contained in:
parent
5609f59448
commit
761f8386e7
61
README.md
61
README.md
@ -13,7 +13,7 @@ go get gopkg.in/yaml.v3
|
||||
1. Install **config** library:
|
||||
|
||||
```sh
|
||||
go get github.com/eschao/config
|
||||
git@git.mousesoft.ru:ms/config.git
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -41,6 +41,7 @@ Like JSON, Yaml, **config** uses tags to define configurations:
|
||||
* int8, int16, int, int32, int64
|
||||
* uint8, uint16, uint, uint32, uint64
|
||||
* float32, float64
|
||||
* time.Duration
|
||||
* slice type. e.g: []string, []int ...
|
||||
|
||||
#### 2. Defines **default** values
|
||||
@ -287,33 +288,49 @@ Examples:
|
||||
Then, you can parse as below:
|
||||
|
||||
```golang
|
||||
dbConfig := Database{}
|
||||
dbConfig := Database{}
|
||||
|
||||
// parse default values
|
||||
if err := config.ParseDefault(&dbConfig); err != nil {
|
||||
// error handling
|
||||
}
|
||||
// parse default values
|
||||
if err := config.ParseDefault(&dbConfig); err != nil {
|
||||
// error handling
|
||||
}
|
||||
|
||||
// parse configuration file from command line
|
||||
err := config.ParseConfig(&dbConfig, "c")
|
||||
cmd := config.NewCLI("")
|
||||
if err := cmd.Init(&dbConfig); err != nil {
|
||||
// error handling
|
||||
}
|
||||
|
||||
// capture cli flags
|
||||
args := cmd.Capture(os.Args)
|
||||
|
||||
// parse cli flags of application, urfave for example
|
||||
flagSet.Parse(args)
|
||||
|
||||
// parse captured cli flags of config
|
||||
if err := cmd.Parse(cmd.Args); err != nil {
|
||||
// error handling
|
||||
}
|
||||
|
||||
// parse configuration file from command line
|
||||
err := config.ParseConfig(&dbConfig, "c")
|
||||
|
||||
// parse default configurations
|
||||
if err != nil {
|
||||
err = config.ParseConfigFile(&dbConfig), "")
|
||||
}
|
||||
// parse default configurations
|
||||
if err != nil {
|
||||
err = config.ParseConfigFile(&dbConfig), "")
|
||||
}
|
||||
|
||||
// parse environment variables
|
||||
if err != nil {
|
||||
err = config.ParseEnv(&dbConfig)
|
||||
}
|
||||
// parse environment variables
|
||||
if err != nil {
|
||||
err = config.ParseEnv(&dbConfig)
|
||||
}
|
||||
|
||||
// parse command line
|
||||
if err != nil {
|
||||
err = config.ParseCli(&dbConfig)
|
||||
}
|
||||
// parse command line
|
||||
if err != nil {
|
||||
err = config.ParseCli(&dbConfig)
|
||||
}
|
||||
|
||||
// check if all required configurations are set
|
||||
...
|
||||
// check if all required configurations are set
|
||||
...
|
||||
```
|
||||
|
||||
You don't need to call all of them. Just invokes parsing function that your need.
|
||||
|
Loading…
Reference in New Issue
Block a user