Fix version verification when "\|" doesn't work in sed.
authorWayne Davison <wayne@opencoder.net>
Sun, 16 Oct 2022 18:14:15 +0000 (11:14 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 16 Oct 2022 18:14:15 +0000 (11:14 -0700)
mkgitver

index 75c9fe1e5f890d3cf6afd1f924683dfa9aff3eff..0102b0894e5f550f6b1e295cc1d1fd6e63322f35 100755 (executable)
--- a/mkgitver
+++ b/mkgitver
@@ -7,8 +7,10 @@ if [ ! -f git-version.h ]; then
 fi
 
 if test -d "$srcdir/.git" || test -f "$srcdir/.git"; then
-    gitver=`git describe --abbrev=8 2>/dev/null | sed -n '/^v3\.[0-9][0-9]*\.[0-9][0-9]*\(pre[0-9]*\)*\(-\|$\)/p'`
-    if [ -n "$gitver" ]; then
+    gitver=`git describe --abbrev=8 2>/dev/null`
+    # NOTE: I'm avoiding "|" in sed since I'm not sure if sed -r is portable and "\|" fails on some OSes.
+    verchk=`echo "$gitver-" | sed -n '/^v3\.[0-9][0-9]*\.[0-9][0-9]*\(pre[0-9]*\)*-/p'`
+    if [ -n "$verchk" ]; then
        echo "#define RSYNC_GITVER \"$gitver\"" >git-version.h.new
        if ! diff git-version.h.new git-version.h >/dev/null; then
            echo "Updating git-version.h"