From 799d186f85f4506d7788a46d4a5bfe008eff9e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Wed, 1 May 2024 19:44:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E9=87=8F=E4=BF=AE=E9=A5=B0=E7=AC=A6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0quote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/configutils/variable.go | 4 ++++ pkg/configutils/variable_test.go | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/pkg/configutils/variable.go b/pkg/configutils/variable.go index 448f6a6..ade4b37 100644 --- a/pkg/configutils/variable.go +++ b/pkg/configutils/variable.go @@ -8,6 +8,7 @@ import ( stringutil "github.com/iwind/TeaGo/utils/string" "net/url" "regexp" + "strconv" "strings" "sync" ) @@ -183,6 +184,9 @@ func doStringModifiers(value string, modifiers []string) string { value = strings.ToLower(value) case "toUpperCase": value = strings.ToUpper(value) + case "quote": + value = strconv.Quote(value) + } } return value diff --git a/pkg/configutils/variable_test.go b/pkg/configutils/variable_test.go index 1af4ebb..0d44998 100644 --- a/pkg/configutils/variable_test.go +++ b/pkg/configutils/variable_test.go @@ -115,6 +115,29 @@ func TestParseVariables_Modifier(t *testing.T) { } return "${" + varName + "}" })) + + // quote + t.Log("quote(abc)", "=>", configutils.ParseVariables("${var|quote}", func(varName string) (value string) { + switch varName { + case "var": + return "abc" + } + return "${" + varName + "}" + })) + t.Log("quote(\"ABC\"123)", "=>", configutils.ParseVariables("${var|quote}", func(varName string) (value string) { + switch varName { + case "var": + return "\"ABC\"123" + } + return "${" + varName + "}" + })) + t.Log("quote('ABC'123)", "=>", configutils.ParseVariables("${var|quote}", func(varName string) (value string) { + switch varName { + case "var": + return "'ABC'123" + } + return "${" + varName + "}" + })) } func TestParseHolders(t *testing.T) {