Dynamically interpret semver expression in local dirs package.json

This commit is contained in:
edwmurph
2018-04-09 17:25:30 -04:00
committed by edwmurph
parent b81c120e0c
commit 97bd5911ef
13 changed files with 857 additions and 5 deletions

View File

@@ -0,0 +1,42 @@
#!/bin/sh
die () { printf "$@" ; exit 1; }
\. ../../../nvm.sh
valid_semver_regexp='^( ?(<|<=|>|>=|=|~|\^)?([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x))+$'
# POSITIVE TEST CASES
# STRING:REGEXP
test_cases="1.2.3:$valid_semver_regexp
11.22.33:$valid_semver_regexp"
while [ -n "$test_cases" ]; do
LINE=$(echo "$test_cases" | head -n1)
STRING=$(echo "$LINE" | awk -F: '{ print $1 }')
REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }')
[ -n "$REGEXP" ] \
&& [ -n "$STRING" ] \
&& nvm_string_contains_regexp "$STRING" "$REGEXP" \
|| die "nvm_string_contains_regexp POSITIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n"
test_cases=$(echo "$test_cases" | tail -n +2)
done
# NEGATIVE TEST CASES
# STRING:REGEXP
test_cases="1.2.a:$valid_semver_regexp
:$valid_semver_regexp
11.22.a:$valid_semver_regexp"
while [ -n "$test_cases" ]; do
LINE=$(echo "$test_cases" | head -n1)
STRING=$(echo "$LINE" | awk -F: '{ print $1 }')
REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }')
[ -n "$REGEXP" ] \
&& ! nvm_string_contains_regexp "$STRING" "$REGEXP" \
|| die "nvm_string_contains_regexp NEGATIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n"
test_cases=$(echo "$test_cases" | tail -n +2)
done
exit 0