diff --git a/contrib/source-control-tools/automated-commits.sh b/contrib/source-control-tools/automated-commits.sh --- a/contrib/source-control-tools/automated-commits.sh +++ b/contrib/source-control-tools/automated-commits.sh @@ -82,32 +82,11 @@ git checkout master git reset --hard "${PARENT_COMMIT}" -# Utility functions to compare version strings -version_greater_equal() { - printf '%s\n%s\n' "$2" "$1" | sort -V -C -} -version_greater() { - [ "$1" != "$2" ] && version_greater_equal "$1" "$2" -} -version_less_equal() { - ! version_greater "$1" "$2" -} -version_less() { - ! version_greater_equal "$1" "$2" -} -get_current_version() { - local -n CURRENT_VERSION=$1 - - # Get the current version of the software - "${DEVTOOLS_DIR}"/build_cmake.sh --no-build - pushd "$BUILD_DIR" - CURRENT_VERSION="$(ninja print-version | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$')" - popd -} - # Common script to update the AUR packages. # Usage: update-aur-version update-aur-version() { + # shellcheck source=../utils/compare-version.sh + source "${TOPLEVEL}"/contrib/utils/compare-version.sh PACKAGE="$1" CURRENT_VERSION="" @@ -139,6 +118,8 @@ case "${COMMIT_TYPE}" in archive-release-notes) + # shellcheck source=../utils/compare-version.sh + source "${TOPLEVEL}"/contrib/utils/compare-version.sh RELEASE_NOTES_FILE="${TOPLEVEL}/doc/release-notes.md" RELEASE_NOTES_VERSION=$(sed -n "1s/^Bitcoin ABC version \([0-9]\+\.[0-9]\+\.[0-9]\+\).\+$/\1/p" "${RELEASE_NOTES_FILE}") RELEASE_NOTES_ARCHIVE="${TOPLEVEL}/doc/release-notes/release-notes-${RELEASE_NOTES_VERSION}.md" diff --git a/contrib/utils/compare-version.sh b/contrib/utils/compare-version.sh new file mode 100755 --- /dev/null +++ b/contrib/utils/compare-version.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +export LC_ALL=C.UTF-8 + +set -euxo pipefail + +# Utility functions to compare version strings +version_greater_equal() { + printf '%s\n%s\n' "$2" "$1" | sort -V -C +} +version_greater() { + [ "$1" != "$2" ] && version_greater_equal "$1" "$2" +} +version_less_equal() { + ! version_greater "$1" "$2" +} +version_less() { + ! version_greater_equal "$1" "$2" +} +get_current_version() { + local -n CURRENT_VERSION=$1 + + TOPLEVEL=$(git rev-parse --show-toplevel) + : "${BUILD_DIR:="${TOPLEVEL}/build"}" + + # Get the current version of the software + BUILD_DIR="${BUILD_DIR}" "${TOPLEVEL}"/contrib/devtools/build_cmake.sh --no-build + pushd "${BUILD_DIR}" + # shellcheck disable=SC2034 + CURRENT_VERSION="$(ninja print-version | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$')" + popd +}