package main
import (
"log"
"github.com/catamat/config"
)
type configJSON struct {
Word string `json:"word"`
Number int `json:"number"`
Check bool `json:"check"`
Slice []int `json:"myslice"`
}
type configEnv struct {
TmpDir string `env:"TMPDIR"`
HOME string
Shell string `env:"SHELL"`
User string `env:"USER"`
GoRoot string `env:"GOROOT"`
CgoCflags string `env:"CGO_CFLAGS"`
VscodePid int `env:"VSCODE_PID"`
PipeLogging bool `env:"PIPE_LOGGING"`
Slice []int `env:"MY_SLICE" vsep:":"`
}
type configFlags struct {
Word string `flag:"-word"`
Number int `flag:"-number"`
Check bool `flag:"-check"`
Slice []int `flag:"-myslice" vsep:","`
}
func main() {
log.Println("JSON:")
cfg1 := configJSON{}
config.FromJSON(&cfg1, "config.json")
log.Println(cfg1)
log.Println("Env:")
cfg2 := configEnv{}
config.FromEnv(&cfg2)
log.Println(cfg2)
log.Println("Flags:")
cfg3 := configFlags{}
config.FromFlags(&cfg3)
log.Println(cfg3)
}