Skip to content

Commit d9e786b

Browse files
committed
Return error instead of panic for invalid regex in definition
1 parent de37453 commit d9e786b

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

internal/runner/runner.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ func DryRun(r io.Reader, prefix *regexp.Regexp, skipBy string) (Result, error) {
7676
if err != nil {
7777
return Result{}, xerrors.Errorf("%d: Unmarsharing `%s` as JSON has been failed, check the given prefix: %w", lineNumber, jsonStr, err)
7878
}
79-
extractor := regexp.MustCompile(def.Extract)
79+
extractor, err := regexp.Compile(def.Extract)
80+
if err != nil {
81+
return Result{}, xerrors.Errorf("%d: Invalid regex `%s`: %w", lineNumber, def.Extract, err)
82+
}
8083
if len(def.Command) < 1 {
8184
return Result{}, xerrors.Errorf("%d: Given JSON `%s` does not include commands", lineNumber, jsonStr)
8285
}

internal/runner/runner_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,13 @@ broken: ':<' # selfup { "extract": ":[<\\)]", "replacer": ["this_command_does_no
158158
}, "Broken JSON": {
159159
input: `Header
160160
broken: ':<' # selfup {{ """" }
161+
`,
162+
prefix: defaultPrefix,
163+
skipBy: "",
164+
ok: false,
165+
}, "Invalid Regex": {
166+
input: `Header
167+
broken: '0.1.0' # selfup { "extract": "[", "replacer": ["echo", "0.2.0"] }
161168
`,
162169
prefix: defaultPrefix,
163170
skipBy: "",

0 commit comments

Comments
 (0)