You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/07/22 21:19:51 UTC
(causeway-app-petclinic) 01/05: updates tagger.sh
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to tag tags/2.1.0/01-01-starter-app
in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git
commit e405e062502c4d168072c3f6fedb76d3f6a2ccff
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jul 22 21:38:33 2024 +0100
updates tagger.sh
apply one by one, and perform sed -i after each in order to fix up any issues with cherry-picking old version pom.xml files
---
tagger.sh | 68 ++++++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 45 insertions(+), 23 deletions(-)
diff --git a/tagger.sh b/tagger.sh
index e9f3015..fe3b302 100755
--- a/tagger.sh
+++ b/tagger.sh
@@ -1,31 +1,36 @@
#!/bin/bash
usage() {
- echo "$(basename $0) -b base -v version -x" >&2
+ echo "$(basename $0) -b base_branch -p previous_version -v new_version -x" >&2
echo "" >&2
echo "where:" >&2
echo " -b base branch, either v2 or v3" >&2
- echo " -v version to create new tag under" >&2
+ echo " -p previous version" >&2
+ echo " -v new version" >&2
echo " -x execute (otherwise, is a dry run)" >&2
echo "" >&2
echo "eg:" >&2
- echo " $(basename $0) -b v2 -v 2.1.0" >&2
- echo " $(basename $0) -b v3 -v 3.1.0 -x" >&2
+ echo " $(basename $0) -b v2 -p 2.0.0 -v 2.1.0" >&2
+ echo " $(basename $0) -b v3 -p 3.0.0 -v 3.1.0 -x" >&2
echo "" >&2
exit 1
}
-BASE=""
-VERSION=""
+BASE_BRANCH=""
+PREV_VERSION=""
+NEW_VERSION=""
EXECUTE=""
-while getopts ":b:v:x" opt; do
+while getopts ":b:p:v:x" opt; do
case ${opt} in
b)
- BASE=$OPTARG
+ BASE_BRANCH=$OPTARG
+ ;;
+ p)
+ PREV_VERSION=$OPTARG
;;
v)
- VERSION=$OPTARG
+ NEW_VERSION=$OPTARG
;;
x)
EXECUTE="true"
@@ -33,48 +38,65 @@ while getopts ":b:v:x" opt; do
\? ) usage "Invalid option"
exit 1
;;
- : )
+ : )
echo "Option -$OPTARG requires an argument." 1>&2; exit 1;;
esac
done
shift $((OPTIND -1))
-if [ "$BASE" != "v2" -a "$BASE" != "v3" ]
+if [ "$BASE_BRANCH" != "v2" -a "$BASE_BRANCH" != "v3" ]
then
usage
fi
-if [ -z "$VERSION" ]
+if [ -z "$PREV_VERSION" -o -z "$NEW_VERSION" ]
then
usage
fi
-echo "BASE : $BASE"
-echo "VERSION: $VERSION"
-echo "EXECUTE: $EXECUTE"
+echo "-b BASE_BRANCH : $BASE_BRANCH"
+echo "-p PREV_VERSION : $PREV_VERSION"
+echo "-v NEW_VERSION : $NEW_VERSION"
+echo "-x EXECUTE : $EXECUTE"
PREV_TAG=""
-for TAG in $(git tag -l | grep "tags/$BASE/")
+for TAG in $(git tag -l | grep "tags/$BASE_BRANCH/")
do
- NEW_TAG="tags/$VERSION/$(echo $TAG | cut -c9-)"
+ NEW_TAG="tags/$NEW_VERSION/$(echo $TAG | cut -c9-)"
if [ -n "$PREV_TAG" ]
then
- echo "git cherry-pick $PREV_TAG..$TAG"
+ for COMMIT in $(git log $PREV_TAG..$TAG --pretty=format:"%H")
+ do
+
+ echo "git cherry-pick $COMMIT"
+ if [ "$EXECUTE" = "true" ]
+ then
+ git cherry-pick $COMMIT
+ fi
- if [ "$EXECUTE" = "true" ]
- then
- git cherry-pick $PREV_TAG..$TAG
- fi
+ if [ "$EXECUTE" = "true" ]
+ then
+ for POM_XML in $(find . -name "pom.xml")
+ do
+ sed -i "s/<version>$PREV_VERSION<\/version>/<version>$NEW_VERION<\/version>/g" "$POM_XML"
+ done
+ if [ -n "$(git status --porcelain)" ]
+ then
+ git add .
+ git commit --amend --no-edit
+ fi
+ fi
+ done
fi
echo "git tag $NEW_TAG"
if [ "$EXECUTE" = "true" ]
then
- git tag $NEW_TAG
+ git tag -f $NEW_TAG
fi
PREV_TAG=$TAG