diff options
author | Alex Thiessen <alex.thiessen.de+github@gmail.com> | 2022-05-30 20:15:44 +0300 |
---|---|---|
committer | Alex Thiessen <alex.thiessen.de+github@gmail.com> | 2022-05-30 20:18:55 +0300 |
commit | bbe292a24434659135cc834996659fd359e808f5 (patch) | |
tree | 4d49ef51096f7c5fd0e7230b6fd50a3c492e3f51 | |
parent | 7290892865a8206a95e3cc417005bc28b2cc249d (diff) |
src: Add `refute_regex.bash`
Add the function complementary to `assert_regex()`.
-rw-r--r-- | src/refute_regex.bash | 23 |
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 +} |