1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-03-17 21:07:54 +02:00

fix(config): Support colon as default value in config.yaml (#1332)

This commit is contained in:
Giovanny Gutiérrez 2021-08-13 20:50:26 -05:00 committed by GitHub
parent 4b6ab21ae5
commit 9a6c03a9e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 1 deletions

View File

@ -183,6 +183,7 @@ func TestDefaultResolver(t *testing.T) {
"enable": "${ENABLE:false}",
"rate": "${RATE}",
"empty": "${EMPTY:foobar}",
"url": "${URL:http://example.com}",
"array": []interface{}{
"${PORT}",
map[string]interface{}{"foobar": "${NOTEXIST:8081}"},
@ -237,6 +238,11 @@ func TestDefaultResolver(t *testing.T) {
path: "foo.bar.empty",
expect: "",
},
{
name: "test url with default",
path: "foo.bar.url",
expect: "http://example.com",
},
{
name: "test array",
path: "foo.bar.array",

View File

@ -84,7 +84,7 @@ func defaultDecoder(src *KeyValue, target map[string]interface{}) error {
// placeholder format in ${key:default} or $key.
func defaultResolver(input map[string]interface{}) error {
mapper := func(name string) string {
args := strings.Split(strings.TrimSpace(name), ":")
args := strings.SplitN(strings.TrimSpace(name), ":", 2)
if v, has := readValue(input, args[0]); has {
s, _ := v.String()
return s