Esta pequena função tornará simples verificar se um determinado utilitário atende aos requisitos mínimos de versão de seu script.
A função
# Compare multipoint versions
function check_min_version {
local BASE=$1
local MIN=$2
# Break apart the versions into an array of semantic parts
local BASEPARTS=(${BASE//./ })
local MINPARTS=(${MIN//./ })
# Ensure there are 3 parts (semantic versioning)
if [[ ${#BASEPARTS[@]} -lt 3 ]] || [[ ${#MINPARTS[@]} -lt 3 ]]; then
VERSION_CHECK_ERROR="Please provide version numbers in semantic format MAJOR.MINOR.PATCH."
return
fi
# Compare the parts
if [[ ${BASEPARTS[0]} -lt ${MINPARTS[0]} ]] || [[ ${BASEPARTS[0]} -eq ${MINPARTS[0]} && ${BASEPARTS[1]} -lt ${MINPARTS[1]} ]] || [[ ${BASEPARTS[0]} -eq ${MINPARTS[0]} && ${BASEPARTS[1]} -eq ${MINPARTS[1]} && ${BASEPARTS[2]} -lt ${MINPARTS[2]} ]]; then
VERSION_CHECK_ERROR="Minimum version required is $MIN. Your's is $BASE."
fi
}
Como usá-lo
# Check drush version. Must be >= 6.4.
check_min_version `drush --version --pipe` "6.4.0"
if [[ -n "$VERSION_CHECK_ERROR" ]]; then
echo -e "$VERSION_CHECK_ERROR"
exit 1
fi