diff options
-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 +} |