install: make cmpver available earlier
[ci skip]
This commit is contained in:
parent
190eee5485
commit
bcf6f8ab4d
@ -768,6 +768,42 @@ trap cleanup_temp_dir EXIT
|
|||||||
|
|
||||||
# hledger routines
|
# hledger routines
|
||||||
|
|
||||||
|
# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401.
|
||||||
|
# cmpver A B's exit status *and* output is
|
||||||
|
# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.)
|
||||||
|
# 1 for A > B
|
||||||
|
# 2 for A < B.
|
||||||
|
cmpver () {
|
||||||
|
if [[ $1 == $2 ]]
|
||||||
|
then
|
||||||
|
echo 0; return 0
|
||||||
|
fi
|
||||||
|
local IFS=.
|
||||||
|
local i ver1=($1) ver2=($2)
|
||||||
|
# fill empty fields in ver1 with zeros
|
||||||
|
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
|
||||||
|
do
|
||||||
|
ver1[i]=0
|
||||||
|
done
|
||||||
|
for ((i=0; i<${#ver1[@]}; i++))
|
||||||
|
do
|
||||||
|
if [[ -z ${ver2[i]} ]]
|
||||||
|
then
|
||||||
|
# fill empty fields in ver2 with zeros
|
||||||
|
ver2[i]=0
|
||||||
|
fi
|
||||||
|
if ((10#${ver1[i]} > 10#${ver2[i]}))
|
||||||
|
then
|
||||||
|
echo 1; return 1
|
||||||
|
fi
|
||||||
|
if ((10#${ver1[i]} < 10#${ver2[i]}))
|
||||||
|
then
|
||||||
|
echo 2; return 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo 0; return 0
|
||||||
|
}
|
||||||
|
|
||||||
# install stack or a newer version of stack if needed,
|
# install stack or a newer version of stack if needed,
|
||||||
# or always with --force-install-stack,
|
# or always with --force-install-stack,
|
||||||
# in $HOME/.local/bin
|
# in $HOME/.local/bin
|
||||||
@ -940,42 +976,6 @@ fi
|
|||||||
try_info cabal update
|
try_info cabal update
|
||||||
)
|
)
|
||||||
|
|
||||||
# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401.
|
|
||||||
# cmpver A B's exit status *and* output is
|
|
||||||
# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.)
|
|
||||||
# 1 for A > B
|
|
||||||
# 2 for A < B.
|
|
||||||
cmpver () {
|
|
||||||
if [[ $1 == $2 ]]
|
|
||||||
then
|
|
||||||
echo 0; return 0
|
|
||||||
fi
|
|
||||||
local IFS=.
|
|
||||||
local i ver1=($1) ver2=($2)
|
|
||||||
# fill empty fields in ver1 with zeros
|
|
||||||
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
|
|
||||||
do
|
|
||||||
ver1[i]=0
|
|
||||||
done
|
|
||||||
for ((i=0; i<${#ver1[@]}; i++))
|
|
||||||
do
|
|
||||||
if [[ -z ${ver2[i]} ]]
|
|
||||||
then
|
|
||||||
# fill empty fields in ver2 with zeros
|
|
||||||
ver2[i]=0
|
|
||||||
fi
|
|
||||||
if ((10#${ver1[i]} > 10#${ver2[i]}))
|
|
||||||
then
|
|
||||||
echo 1; return 1
|
|
||||||
fi
|
|
||||||
if ((10#${ver1[i]} < 10#${ver2[i]}))
|
|
||||||
then
|
|
||||||
echo 2; return 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo 0; return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# try installing each package that needs installing, in turn
|
# try installing each package that needs installing, in turn
|
||||||
echo ----------
|
echo ----------
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user