diff options
author | Alex Thiessen <alex.thiessen.de+github@gmail.com> | 2022-05-25 21:42:14 +0300 |
---|---|---|
committer | Alex Thiessen <alex.thiessen.de+github@gmail.com> | 2022-05-26 16:51:34 +0300 |
commit | bf9ce100392aaf1076ef5d3d5ade1982ec210067 (patch) | |
tree | 6f62dcccf0551e99df529779df5bd5687719bc54 | |
parent | a036bb8cb779662f83fddfc7b1e4f187fa32279c (diff) |
src: Add `assert_regex.bash`
Add a convenient version of `[[ =~ ]]`.
-rw-r--r-- | src/assert_regex.bash | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/assert_regex.bash b/src/assert_regex.bash new file mode 100644 index 0000000..b371bf3 --- /dev/null +++ b/src/assert_regex.bash @@ -0,0 +1,16 @@ +assert_regex() { + local -r value="${1}" + local -r pattern="${2}" + + if [[ '' =~ ${pattern} ]] || (( ${?} == 2 )); then + echo "Invalid extended regular expression: \`${pattern}'" \ + | batslib_decorate 'ERROR: assert_regex' \ + | fail + elif ! [[ "${value}" =~ ${pattern} ]]; then + batslib_print_kv_single_or_multi 8 \ + 'value' "${value}" \ + 'pattern' "${pattern}" \ + | batslib_decorate 'value does not match regular expression' \ + | fail + fi +} |