Skip to content

Commit dc57387

Browse files
committed
release.bash: make work on Linux
Most releases of Linux use the GNU version of sed, while most releases of macOS use the BSD version of sed. For the -i flag, BSD always expects an argument, while GNU expects an optional argument in a different format. See https://www.freebsd.org/cgi/man.cgi?query=sed&sektion=&n=1 See https://www.gnu.org/software/sed/manual/html_node/Command_002dLine-Options.html#Command_002dLine-Options Change-Id: Id0f472553c8583d427524f59b36c376d6bc28786 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/330869 Trust: Joe Tsai <[email protected]> Reviewed-by: Damien Neil <[email protected]>
1 parent 21e33cc commit dc57387

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

release.bash

+10-6
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,18 @@ git change release
6363
git sync
6464

6565
# Create commit for actual release.
66-
sed -i "" -e "s/\(Minor *= *\)[0-9]*/\1$VERSION_MINOR/" internal/version/version.go
67-
sed -i "" -e "s/\(Patch *= *\)[0-9]*/\1$VERSION_PATCH/" internal/version/version.go
68-
sed -i "" -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go
66+
INPLACE='-i ""' # BSD version of sed expects argument after -i
67+
if [[ "$(sed --version)" == *"GNU"* ]]; then
68+
INPLACE="-i" # GNU version of sed does not expect argument after -i
69+
fi
70+
sed $INPLACE -e "s/\(Minor *= *\)[0-9]*/\1$VERSION_MINOR/" internal/version/version.go
71+
sed $INPLACE -e "s/\(Patch *= *\)[0-9]*/\1$VERSION_PATCH/" internal/version/version.go
72+
sed $INPLACE -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go
6973
if ! [[ -z $GEN_VERSION ]]; then
70-
sed -i "" -e "s/\(GenVersion *= *\)[0-9]*/\1$GEN_VERSION/" runtime/protoimpl/version.go
74+
sed $INPLACE -e "s/\(GenVersion *= *\)[0-9]*/\1$GEN_VERSION/" runtime/protoimpl/version.go
7175
fi
7276
if ! [[ -z $MIN_VERSION ]]; then
73-
sed -i "" -e "s/\(MinVersion *= *\)[0-9]*/\1$MIN_VERSION/" runtime/protoimpl/version.go
77+
sed $INPLACE -e "s/\(MinVersion *= *\)[0-9]*/\1$MIN_VERSION/" runtime/protoimpl/version.go
7478
fi
7579
git commit -a -m "all: release $(version_string)"
7680

@@ -80,7 +84,7 @@ go test -mod=vendor -timeout=60m -count=1 integration_test.go "$@" -buildRelease
8084
# Create commit to start development after release.
8185
VERSION_PRERELEASE="${VERSION_PRERELEASE}.devel" # append ".devel"
8286
VERSION_PRERELEASE="${VERSION_PRERELEASE#"."}" # trim possible leading "."
83-
sed -i "" -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go
87+
sed $INPLACE -e "s/\(PreRelease *= *\)\"[^\"]*\"/\1\"$VERSION_PRERELEASE\"/" internal/version/version.go
8488
git commit -a -m "all: start $(version_string)"
8589

8690
echo

0 commit comments

Comments
 (0)