Skip to content

Commit abb689b

Browse files
committed
🐛 Fix parameters handling of read_* tables
Before, backticks escaping wasn't supported
1 parent 251f13a commit abb689b

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

module/helper.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ type argParam struct {
107107
value *string
108108
}
109109

110-
var argRegExp *regexp.Regexp = regexp.MustCompile(`^\s*['"]?([^= '"]+?)['"]?\s*=\s*['"]?(.*?)['"]?\s*$`)
110+
var argRegExp *regexp.Regexp = regexp.MustCompile("^\\s*['\"`]?([^= '\"`]+?)['\"`]?\\s*=\\s*['\"`]?(.*?)['\"`]?\\s*$")
111111

112112
func parseArgs(params []argParam, args []string) {
113113
// It's quadratic but the number of arguments is small

module/helper_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ func TestArgumentParsing(t *testing.T) {
7878
require.Equal(t, "true", useHeaderStr)
7979
})
8080

81+
t.Run("Argument is escaped with backticks", func(t *testing.T) {
82+
fileName = ""
83+
useHeaderStr = ""
84+
parseArgs(args, []string{`file=` + "`example.csv`", `header=` + "`true`"})
85+
require.Equal(t, "example.csv", fileName)
86+
require.Equal(t, "true", useHeaderStr)
87+
})
88+
89+
t.Run("Name and arg is escaped with backticks", func(t *testing.T) {
90+
fileName = ""
91+
useHeaderStr = ""
92+
parseArgs(args, []string{"`file`=`example.csv`", "`header`=\"true\""})
93+
require.Equal(t, "example.csv", fileName)
94+
require.Equal(t, "true", useHeaderStr)
95+
})
96+
8197
}
8298

8399
func TestColumnNameRewriter(t *testing.T) {

0 commit comments

Comments
 (0)