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:
|
1. Install **config** library:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go get github.com/eschao/config
|
git@git.mousesoft.ru:ms/config.git
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@ -41,6 +41,7 @@ Like JSON, Yaml, **config** uses tags to define configurations:
|
|||||||
* int8, int16, int, int32, int64
|
* int8, int16, int, int32, int64
|
||||||
* uint8, uint16, uint, uint32, uint64
|
* uint8, uint16, uint, uint32, uint64
|
||||||
* float32, float64
|
* float32, float64
|
||||||
|
* time.Duration
|
||||||
* slice type. e.g: []string, []int ...
|
* slice type. e.g: []string, []int ...
|
||||||
|
|
||||||
#### 2. Defines **default** values
|
#### 2. Defines **default** values
|
||||||
@ -287,33 +288,49 @@ Examples:
|
|||||||
Then, you can parse as below:
|
Then, you can parse as below:
|
||||||
|
|
||||||
```golang
|
```golang
|
||||||
dbConfig := Database{}
|
dbConfig := Database{}
|
||||||
|
|
||||||
// parse default values
|
// parse default values
|
||||||
if err := config.ParseDefault(&dbConfig); err != nil {
|
if err := config.ParseDefault(&dbConfig); err != nil {
|
||||||
// error handling
|
// error handling
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse configuration file from command line
|
cmd := config.NewCLI("")
|
||||||
err := config.ParseConfig(&dbConfig, "c")
|
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
|
// parse default configurations
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = config.ParseConfigFile(&dbConfig), "")
|
err = config.ParseConfigFile(&dbConfig), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse environment variables
|
// parse environment variables
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = config.ParseEnv(&dbConfig)
|
err = config.ParseEnv(&dbConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse command line
|
// parse command line
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = config.ParseCli(&dbConfig)
|
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.
|
You don't need to call all of them. Just invokes parsing function that your need.
|
||||||
|
Loading…
Reference in New Issue
Block a user