diff options
Diffstat (limited to 'Tools/scripts/git-get-latest-remote-version.sh')
-rwxr-xr-x | Tools/scripts/git-get-latest-remote-version.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Tools/scripts/git-get-latest-remote-version.sh b/Tools/scripts/git-get-latest-remote-version.sh new file mode 100755 index 000000000000..3148305b4f95 --- /dev/null +++ b/Tools/scripts/git-get-latest-remote-version.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# +# MAINTAINER: yuri@FreeBSD.org + +set -e +set -o pipefail + +export LC_ALL=C + +## +## git-get-latest-remote-version.sh: retrieves the latest version of a remote project at the given Git URL +## + +# args + +REPOSITORY_URL="$1" +TAG_PREFIX="$2" + +if [ -z "$REPOSITORY_URL" ]; then + echo "Usage: $0 <repository-url> <tag-prefix>" + exit 1 +fi + +# check that packaged dependencies are installed + +for dep in git version_sort; do + if ! which -s $dep; then + echo "error: the '$dep' dependency is missing" + if [ $dep = "git" ]; then + echo "... please install the 'git' package" + elif [ $dep = "version_sort" ]; then + echo "... please install the 'libversion' package" + fi + exit 1 + fi +done + + +# MAIN + +git ls-remote --refs --tags $REPOSITORY_URL 2>/dev/null | + grep "refs/tags/$TAG_PREFIX" | + sed -e "s|.*refs/tags/$TAG_PREFIX||" | + version_sort | + tail -1 || + ! echo "failed to find the git project '$REPOSITORY_URL' or tags in it" |