Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bats-core/bats-assert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Thiessen <alex.thiessen.de+github@gmail.com>2022-05-25 21:42:14 +0300
committerAlex Thiessen <alex.thiessen.de+github@gmail.com>2022-05-26 16:51:34 +0300
commitbf9ce100392aaf1076ef5d3d5ade1982ec210067 (patch)
tree6f62dcccf0551e99df529779df5bd5687719bc54
parenta036bb8cb779662f83fddfc7b1e4f187fa32279c (diff)
src: Add `assert_regex.bash`
Add a convenient version of `[[ =~ ]]`.
-rw-r--r--src/assert_regex.bash16
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
+}