2017-12-12 21:51:25 +07:00
## Introduction
2017-12-12 22:18:55 +07:00
**config** is a simple golang library and designed to read configurations from JSON, Yaml files, environment variables and command line. **config** depends on [go-yaml ](https://github.com/go-yaml/yaml ) to anlayze Yaml file and use built-in golang library to handle JSON file.
2017-12-12 21:51:25 +07:00
## Installation
1. Install [Yaml ](https://github.com/go-yaml/yaml ) library first:
```
go get gopkg.in/yaml.v2
```
2017-12-12 22:18:55 +07:00
2. Install **config** library:
2017-12-12 21:51:25 +07:00
```
go get github.com/eschao/config
```
## Usage
2017-12-12 22:18:55 +07:00
#### Defines **default** values
**config** library supports defining a default value for structure members by using **default** keyword in structure tags
```golang
type Database struct {
Username string `default:"admin"`
Password string `default:"admin"`
}
```
After specified default value in tags, calls ```config.ParseDefault(interface{})``` to set it on structure instance, example codes as the below:
```golang
dbConfig := Database{}
config.ParseDefault(& dbConfig)
```