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-30 20:15:44 +0300
committerAlex Thiessen <alex.thiessen.de+github@gmail.com>2022-05-30 20:18:55 +0300
commitbbe292a24434659135cc834996659fd359e808f5 (patch)
tree4d49ef51096f7c5fd0e7230b6fd50a3c492e3f51
parent7290892865a8206a95e3cc417005bc28b2cc249d (diff)
src: Add `refute_regex.bash`
Add the function complementary to `assert_regex()`.
-rw-r--r--src/refute_regex.bash23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/refute_regex.bash b/src/refute_regex.bash
new file mode 100644
index 0000000..20f6b32
--- /dev/null
+++ b/src/refute_regex.bash
@@ -0,0 +1,23 @@
+refute_regex() {
+ local -r value="${1}"
+ local -r pattern="${2}"
+
+ if [[ '' =~ ${pattern} ]] || (( ${?} == 2 )); then
+ echo "Invalid extended regular expression: \`${pattern}'" \
+ | batslib_decorate 'ERROR: refute_regex' \
+ | fail
+ elif [[ "${value}" =~ ${pattern} ]]; then
+ if shopt -p nocasematch &>/dev/null; then
+ local case_sensitive=insensitive
+ else
+ local case_sensitive=sensitive
+ fi
+ batslib_print_kv_single_or_multi 8 \
+ 'value' "${value}" \
+ 'pattern' "${pattern}" \
+ 'match' "${BASH_REMATCH[0]}" \
+ 'case' "${case_sensitive}" \
+ | batslib_decorate 'value matches regular expression' \
+ | fail
+ fi
+}