github.com/hairyhenderson/templater@v3.5.0+incompatible/data/datasource_consul.go (about) 1 package data 2 3 import ( 4 "strings" 5 6 "github.com/hairyhenderson/gomplate/libkv" 7 ) 8 9 func readConsul(source *Source, args ...string) (data []byte, err error) { 10 if source.kv == nil { 11 source.kv, err = libkv.NewConsul(source.URL) 12 if err != nil { 13 return nil, err 14 } 15 err = source.kv.Login() 16 if err != nil { 17 return nil, err 18 } 19 } 20 21 p := source.URL.Path 22 if len(args) == 1 { 23 p = strings.TrimRight(p, "/") + "/" + args[0] 24 } 25 26 if strings.HasSuffix(p, "/") { 27 source.mediaType = jsonArrayMimetype 28 data, err = source.kv.List(p) 29 } else { 30 data, err = source.kv.Read(p) 31 } 32 33 if err != nil { 34 return nil, err 35 } 36 37 return data, nil 38 }