vendor-install: wrap ldd-checking code in a function

and call it in `homebrew-vendor-install()` on Linux.
This commit is contained in:
Maxim Belkin 2020-12-15 06:43:11 -06:00
parent 40cd44a45f
commit e6c08bd9a5
No known key found for this signature in database
GPG Key ID: AC71560D4C5F2338

View File

@ -32,23 +32,24 @@ then
esac esac
fi fi
if [[ -n "$HOMEBREW_LINUX" ]] check_ldd_version() {
then local ldd_version
LDD_VERSION_OUTPUT=$(/usr/bin/ldd --version) local ldd_version_major
if [[ $LDD_VERSION_OUTPUT =~ \ [0-9]\.[0-9]+ ]] local ldd_version_minor
if [[ $(/usr/bin/ldd --version) =~ \ [0-9]\.[0-9]+ ]]
then then
LDD_VERSION=${BASH_REMATCH[0]} ldd_version=${BASH_REMATCH[0]// /}
LDD_VERSION_MAJOR=${LDD_VERSION%.*} ldd_version_major=${ldd_version%.*}
LDD_VERSION_MINOR=${LDD_VERSION#*.} ldd_version_minor=${ldd_version#*.}
if (( LDD_VERSION_MAJOR < 2 || LDD_VERSION_MINOR < 13 )) if (( ldd_version_major < 2 || ldd_version_minor < 13 ))
then then
odie "Vendored tools require system Glibc 2.13 or later" odie "Vendored tools require system Glibc 2.13 or later."
fi fi
else else
odie "Failed to detect system Glibc version" odie "Failed to detect system Glibc version."
fi fi
unset LDD_VERSION_OUTPUT LDD_VERSION LDD_VERSION_MAJOR LDD_VERSION_MINOR }
fi
# Execute the specified command, and suppress stderr unless HOMEBREW_STDERR is set. # Execute the specified command, and suppress stderr unless HOMEBREW_STDERR is set.
quiet_stderr() { quiet_stderr() {
@ -238,6 +239,7 @@ homebrew-vendor-install() {
[[ -z "$VENDOR_NAME" ]] && odie "This command requires a vendor target!" [[ -z "$VENDOR_NAME" ]] && odie "This command requires a vendor target!"
[[ -n "$HOMEBREW_DEBUG" ]] && set -x [[ -n "$HOMEBREW_DEBUG" ]] && set -x
[[ -n "$HOMEBREW_LINUX" ]] && check_ldd_version
url_var="${VENDOR_NAME}_URL" url_var="${VENDOR_NAME}_URL"
url2_var="${VENDOR_NAME}_URL2" url2_var="${VENDOR_NAME}_URL2"