diff --git a/README.md b/README.md index f4e3f04..f83ba9e 100644 --- a/README.md +++ b/README.md @@ -14,45 +14,70 @@ Read config from file, useful when read data from kubernetes configmaps, and sec package main import ( - "fmt" - "net/http" + "fmt" + "net/http" - "github.com/acoshift/configfile" - "github.com/garyburd/redigo/redis" + "github.com/acoshift/configfile" + "github.com/garyburd/redigo/redis" ) var config = configfile.NewReader("config") var ( - addr = config.StringDefault("addr", ":8080") - redisAddr = config.MustString("redis_addr") - redisPass = config.String("redis_pass") - redisDB = config.Int("redis_db") + addr = config.StringDefault("addr", ":8080") + redisAddr = config.MustString("redis_addr") + redisPass = config.String("redis_pass") + redisDB = config.Int("redis_db") ) func main() { - pool := redis.Pool{ - Dial: func() (redis.Conn, error) { - return redis.Dial( - "tcp", - redisAddr, - redis.DialPassword(redisPass), - redis.DialDatabase(redisDB), - ) - }, - } - - http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - c := pool.Get() - defer c.Close() - cnt, err := redis.Int64(c.Do("INCR", "cnt")) - if err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - fmt.Fprintf(w, "count: %d", cnt) - }) - - http.ListenAndServe(addr, nil) + pool := redis.Pool{ + Dial: func() (redis.Conn, error) { + return redis.Dial( + "tcp", + redisAddr, + redis.DialPassword(redisPass), + redis.DialDatabase(redisDB), + ) + }, + } + + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + c := pool.Get() + defer c.Close() + cnt, err := redis.Int64(c.Do("INCR", "cnt")) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + fmt.Fprintf(w, "count: %d", cnt) + }) + + http.ListenAndServe(addr, nil) } ``` + +## Example YAML + +```go +package main + +import ( + "fmt" + "net/http" + + "github.com/acoshift/configfile" +) + +func main() { + var config = configfile.NewReader("testdata/config.yaml") + // or use NewYAMLReader + var config = configfile.NewYAMLReader("testdata/config.yaml") + + log.Println(config.Bool("data1")) // true + log.Println(config.String("data2")) // false + log.Println(config.Int("data3")) // 9 + log.Println(config.Int("data4")) // 0 + log.Println(config.String("empty")) // "" +} +``` \ No newline at end of file