From a8cbfd087f1b4fb39cc83f2d4dcbd08487ffdaab Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Thu, 31 Oct 2024 14:31:16 -0500 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Allow=20value=20prefixed=20with=20b?= =?UTF-8?q?ang=20to=20skip=20parsing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/parse.go | 4 ++++ tools/parse_test.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/tools/parse.go b/tools/parse.go index e69c476..d82517b 100644 --- a/tools/parse.go +++ b/tools/parse.go @@ -17,6 +17,10 @@ func ParseString(in string) any { return s } + if strings.HasPrefix(s, "!") { + return strings.TrimPrefix(s, "!") + } + yesno := regexp.MustCompile("^(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)$") yes := regexp.MustCompile("^(y|Y|yes|Yes|YES|true|True|TRUE|on|On|ON)$") null := regexp.MustCompile("^(~|null|Null|NULL|none|None|NONE|nil|Nil|NIL)$") diff --git a/tools/parse_test.go b/tools/parse_test.go index 826af9b..9ff0e2e 100644 --- a/tools/parse_test.go +++ b/tools/parse_test.go @@ -38,6 +38,10 @@ func TestParse(t *testing.T) { {"on-value", "on", true}, {"no-value", "no", false}, {"off-value", "off", false}, + {"skip-parsing-num", "!42", "42"}, + {"skip-parsing-bool", "!false", "false"}, + {"skip-parsing-time", "!" + when.Format(time.RFC3339), when.Format(time.RFC3339)}, + {"skip-parsing-duration", "!15 mins", "15 mins"}, } for _, tt := range tests {