diff options
Diffstat (limited to 'src/refute_regex.bash')
-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 +} |