Verificação de requisitos de versão no Bash

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