diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2023-09-14 00:53:23 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2023-09-15 02:08:11 -0400 |
commit | ed62a3145ae28c9cadd296f4b0490551d75a01f5 (patch) | |
tree | fd6edf1e8deb5eb9dc9698eb6a691480e2028961 /scripts/version_constraint.sh | |
parent | 0b7c958ef3fedd5c7c6b47998a5b6726031015ce (diff) |
[scripts/version_constraint.sh]: refactor
Diffstat (limited to 'scripts/version_constraint.sh')
-rwxr-xr-x | scripts/version_constraint.sh | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/scripts/version_constraint.sh b/scripts/version_constraint.sh index 7ddeeea22..8bc029026 100755 --- a/scripts/version_constraint.sh +++ b/scripts/version_constraint.sh @@ -11,7 +11,7 @@ _version_constraint() # (dep_pkgname [precision]) local n_dots=$(tmp=${full_version%-*} ; tmp=${tmp//[^\.]} ; echo "${#tmp}" ;) local def_precision=$(( n_dots + 1 )) local is_prec_valid=$(( req_precision > 0 && req_precision <= def_precision )) - local precision=$( (( is_prec_valid )) && echo ${req_precision} || echo ${def_precision} ) + local precision=$((( is_prec_valid )) && echo ${req_precision} || echo ${def_precision}) local pkgver_rx='[0-9A-Za-z_]+' pkgver_rx=$(sed 's|\]|\+]|' <<<${pkgver_rx}) # according to the wiki, '+' is not allowed, # but some pkgver have it (eg: 5.15.10+kde+r130) @@ -20,16 +20,16 @@ _version_constraint() # (dep_pkgname [precision]) local garbage_rx='[^0-9].*' local capture_rx=${pkgver_rx} for (( n_dots=1 ; n_dots < precision ; ++n_dots )) ; do capture_rx+=${subver_rx} ; done ; - local version pkgrel has_split_char version_min version_max constraint_string + local version pkgrel has_dot_char version_min version_max constraint_string declare -i subver subver_inc pkgrel_inc if [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx}).*$ ]] then version=${BASH_REMATCH[1]} # pkgver cut to the requested precision #unused=${BASH_REMATCH[2]} # discarded pkgver segments pkgrel=${BASH_REMATCH[3]} # pkgrel with non-numerics right-trimmed - has_split_char=$(grep '\.' <<<${version} &> /dev/null ; echo $((! $?)) ; ) + has_dot_char=$([[ "${version}" =~ \. ]] ; echo $(( ! $? )) ; ) subver=$(sed "s|${garbage_rx}||" <<<${version##*.}) # right-trim from any non-numeric - version=$( ((has_split_char)) && echo ${version%.*}.${subver} || echo ${subver} ) + version=$( (( has_dot_char )) && echo ${version%.*}.${subver} || echo ${subver} ) subver_inc=$(( subver + 1 )) pkgrel_inc=$(( pkgrel + 1 )) version_min=$( (( ! is_prec_valid )) && echo ${full_version%-*}-${pkgrel} || \ @@ -71,32 +71,33 @@ readonly AQUA='\033[00;36m' readonly CEND='\033[00m' -VerIncrement() # (version_string split_char) +VerIncrement() # (version_string) { # NOTE This is not the same parsing logic as _version_constraint(). # It is intended to be as simple as possible, only for the mock data. - # Do not pass in unconventional version chars, such as '+'. + # Write a new test to verify anything novel or peculiar. local version_string=$1 - local split_char=$2 - local has_split_char=$(grep "\\${split_char}" <<<$1 &> /dev/null ; echo $((! $?)) ; ) + local has_pkgrel=$([[ "$1" =~ \- ]] ; echo $((! $?)) ;) + local split_char=$((( has_pkgrel )) && echo '-' || echo '.') + local has_split_char=$([[ "$1" =~ "${split_char}" ]] ; echo $(( ! $? )) ; ) local unchanged_segment=${version_string%${split_char}*} declare -i incremented_segment=$(( ${version_string##*${split_char}} + 1 )) - ((! has_split_char)) || echo -n ${unchanged_segment}${split_char} + (( ! has_split_char )) || echo -n ${unchanged_segment}${split_char} echo ${incremented_segment} } -readonly OPENEXR_VER_MAX_PR_1=$( VerIncrement ${OPENEXR_VER_MIN_PR_1} '.') -readonly OPENEXR_VER_MAX_PR_2=$( VerIncrement ${OPENEXR_VER_MIN_PR_2} '.') -readonly OPENEXR_VER_MAX_PR_3=$( VerIncrement ${OPENEXR_VER_MIN_PR_3} '.') -readonly OPENEXR_VER_MAX_FULL=$( VerIncrement ${OPENEXR_VER_MIN_FULL} '-') -readonly OPENSHADINGLANGUAGE_VER_MAX_PR_1=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_1} '.') -readonly OPENSHADINGLANGUAGE_VER_MAX_PR_2=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_2} '.') -readonly OPENSHADINGLANGUAGE_VER_MAX_PR_3=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_3} '.') -readonly OPENSHADINGLANGUAGE_VER_MAX_PR_4=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_4} '.') -readonly OPENSHADINGLANGUAGE_VER_MAX_FULL=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_FULL} '-') -readonly WEBKIT2GTK_VER_MAX_FULL=$( VerIncrement ${WEBKIT2GTK_VER_MIN_FULL} '-') -readonly QT5BASE_VER_MAX_PR_3=$( VerIncrement ${QT5BASE_VER_MIN_PR_3} '.') ; -readonly QT5BASE_VER_MAX_FULL=$( VerIncrement ${QT5BASE_VER_MIN_FULL} '-') +readonly OPENEXR_VER_MAX_PR_1=$( VerIncrement ${OPENEXR_VER_MIN_PR_1} ) +readonly OPENEXR_VER_MAX_PR_2=$( VerIncrement ${OPENEXR_VER_MIN_PR_2} ) +readonly OPENEXR_VER_MAX_PR_3=$( VerIncrement ${OPENEXR_VER_MIN_PR_3} ) +readonly OPENEXR_VER_MAX_FULL=$( VerIncrement ${OPENEXR_VER_MIN_FULL} ) +readonly OPENSHADINGLANGUAGE_VER_MAX_PR_1=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_1}) +readonly OPENSHADINGLANGUAGE_VER_MAX_PR_2=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_2}) +readonly OPENSHADINGLANGUAGE_VER_MAX_PR_3=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_3}) +readonly OPENSHADINGLANGUAGE_VER_MAX_PR_4=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_4}) +readonly OPENSHADINGLANGUAGE_VER_MAX_FULL=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_FULL}) +readonly WEBKIT2GTK_VER_MAX_FULL=$( VerIncrement ${WEBKIT2GTK_VER_MIN_FULL} ) +readonly QT5BASE_VER_MAX_PR_3=$( VerIncrement ${QT5BASE_VER_MIN_PR_3} ) +readonly QT5BASE_VER_MAX_FULL=$( VerIncrement ${QT5BASE_VER_MIN_FULL} ) TestVersionConstraint() # ("pkgname" "precision" "expected_res") |