2020-06-05 14:28:28 +00:00
|
|
|
# Config Loader
|
|
|
|
|
2020-06-05 14:34:19 +00:00
|
|
|
[![Build Status](https://ci.trj.tw/api/badges/golang/config-loader/status.svg)](https://ci.trj.tw/golang/config-loader)
|
|
|
|
|
2020-06-05 14:28:28 +00:00
|
|
|
## Install
|
|
|
|
```
|
|
|
|
go get -u git.trj.tw/golang/config-loader
|
|
|
|
```
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
### struct tag
|
|
|
|
> default : default value define
|
2020-06-05 14:34:19 +00:00
|
|
|
|
2020-06-05 14:28:28 +00:00
|
|
|
> length : use for slice type min default length
|
|
|
|
|
|
|
|
### support type
|
|
|
|
- string
|
|
|
|
- int, int8, int16, int32, int64
|
|
|
|
- uint, uint8, uint16, uint32, uint64
|
|
|
|
- float32, float64
|
|
|
|
- bool
|
|
|
|
- struct
|
|
|
|
- slice
|
|
|
|
- []string
|
|
|
|
- []int, []int8, []int16, []int32, []int64
|
|
|
|
- []uint, []uint8, []uint16, []uint32, []uint64
|
|
|
|
- []float32, []float64
|
|
|
|
- []bool
|
|
|
|
- []struct
|
|
|
|
|
|
|
|
### example
|
|
|
|
```go
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
|
|
|
|
confloader "git.trj.tw/golang/config-loader"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Server struct {
|
|
|
|
Port int `json:"port" default:"10230"`
|
|
|
|
}
|
|
|
|
type Config struct {
|
|
|
|
Server Server
|
|
|
|
Switchs []int `json:"switchs" default:"1" length:"2"`
|
|
|
|
URL string `json:"url" default:"https://google.com"`
|
|
|
|
OutputFile bool `json:"output_file" default:"true"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
conf := &Config{}
|
|
|
|
if err := confloader.Load(conf, nil); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
fmt.Println(conf)
|
|
|
|
}
|
|
|
|
```
|