summaryrefslogtreecommitdiff
path: root/scripts/version_constraint.sh
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2023-09-14 00:53:23 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2023-09-15 02:08:11 -0400
commited62a3145ae28c9cadd296f4b0490551d75a01f5 (patch)
treefd6edf1e8deb5eb9dc9698eb6a691480e2028961 /scripts/version_constraint.sh
parent0b7c958ef3fedd5c7c6b47998a5b6726031015ce (diff)
[scripts/version_constraint.sh]: refactor
Diffstat (limited to 'scripts/version_constraint.sh')
-rwxr-xr-xscripts/version_constraint.sh43
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")