golang config struct loader
Go to file
Jay 55d5f1a22e
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Merge pull request 'Release v1.0.0' (#1) from release/v1.0.0 into master
2020-06-05 14:38:52 +00:00
test first version 2020-06-05 10:11:45 +00:00
.drone.yml [feat] add ci config 2020-06-05 14:34:19 +00:00
CHANGELOG.md bump version and changelog 2020-06-05 14:37:16 +00:00
go.mod first version 2020-06-05 10:11:45 +00:00
go.sum first version 2020-06-05 10:11:45 +00:00
loader_test.go first version 2020-06-05 10:11:45 +00:00
loader.go first version 2020-06-05 10:11:45 +00:00
README.md [feat] add ci config 2020-06-05 14:34:19 +00:00

Config Loader

Build Status

Install

go get -u git.trj.tw/golang/config-loader

Usage

struct tag

default : default value define

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

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)
}