diff options
| author | Lexi Winter <ivy@FreeBSD.org> | 2025-10-05 09:19:31 +0100 |
|---|---|---|
| committer | Lexi Winter <ivy@FreeBSD.org> | 2025-10-05 09:19:31 +0100 |
| commit | f85f2b2d6e5b7ed869376eb4b180c3a74a5c5da9 (patch) | |
| tree | ad799ccacfb459b809b02b9c115ed4befb93b4c1 /Tools/scripts/git-get-latest-remote-version.sh | |
| parent | 0b1510fe1f98f82da6f3481cb6c58957022d9211 (diff) | |
| parent | b057c68280a2f2a7b3d1fbac36f7b034e1fdf593 (diff) | |
Merge remote-tracking branch 'freebsd/main' into lf/main
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" |
