This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to tag tags/3.1.0/01-01-starter-app
in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git

commit 37bcedbf514976a5c591dc39b9871c05ae4ce865
Author: Dan Haywood <d...@haywood-associates.co.uk>
AuthorDate: Thu Jul 4 10:26:46 2024 +0100

    updates tagger.sh
---
 setver.sh |  45 ++++++++++++++++++++++++
 tagger.sh | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 161 insertions(+)

diff --git a/setver.sh b/setver.sh
new file mode 100755
index 0000000..843f45b
--- /dev/null
+++ b/setver.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+usage() {
+       echo "$(basename $0) -v version" >&2
+       echo "" >&2
+       echo "where:" >&2
+       echo "     -v version to update to" >&2
+       echo "" >&2
+       echo "eg:" >&2
+       echo "    $(basename $0) -v 2.1.0" >&2
+       exit 1
+}
+
+VERSION=$1
+
+while getopts ":v:" opt; do
+  case ${opt} in
+    v)
+      VERSION=$OPTARG
+      ;;
+    \? ) usage "Invalid option"
+      exit 1
+      ;;
+    : ) 
+      echo "Option -$OPTARG requires an argument." 1>&2; exit 1;;
+  esac
+done
+shift $((OPTIND -1))
+
+if [ -z "$VERSION" ]
+then
+       usage
+fi
+
+
+mvnd versions:update-parent -DparentVersion=[$VERSION,$VERSION] -Dskip.nightly 
 
+mvnd versions:set -DnewVersion=$VERSION
+
+git add pom.xml
+git add module-simple-tests/pom.xml
+git add module-simple/pom.xml
+git add webapp-tests/pom.xml
+git add webapp/pom.xml
+
+git commit -m "updates pom.xml files to $VERSION"
diff --git a/tagger.sh b/tagger.sh
new file mode 100755
index 0000000..738f359
--- /dev/null
+++ b/tagger.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+usage() {
+       echo "$(basename $0) -p previous_version -v new_version -x" >&2
+       echo "" >&2
+       echo "where:" >&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) -p 2.0.0 -v 2.1.0" >&2
+       echo "    $(basename $0) -p 3.0.0 -v 3.1.0 -x" >&2
+       echo "" >&2
+       exit 1
+}
+
+BASE_BRANCH="v2"  # always ... we dynamically edit javax->jakarta
+PREV_VERSION=""
+NEW_VERSION=""
+EXECUTE=""
+
+while getopts ":b:p:v:x" opt; do
+  case ${opt} in
+    b)
+      BASE_BRANCH=$OPTARG
+      ;;
+    p)
+      PREV_VERSION=$OPTARG
+      ;;
+    v)
+      NEW_VERSION=$OPTARG
+      ;;
+    x)
+      EXECUTE="true"
+      ;;
+    \? ) usage "Invalid option"
+      exit 1
+      ;;
+    : )
+      echo "Option -$OPTARG requires an argument." 1>&2; exit 1;;
+  esac
+done
+shift $((OPTIND -1))
+
+#if [ "$BASE_BRANCH" != "v2" -a "$BASE_BRANCH" != "v3" ]
+#then
+#      usage
+#fi
+
+if [ -z "$PREV_VERSION" -o -z "$NEW_VERSION" ]
+then
+       usage
+fi
+
+
+#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_BRANCH/")
+do
+       NEW_TAG="tags/$NEW_VERSION/$(echo $TAG | cut -c9-)"
+
+       if [ -n "$PREV_TAG" ]
+       then
+         for COMMIT in $(git log $PREV_TAG..$TAG --pretty=format:"%H" 
--reverse)
+         do
+
+      echo "git cherry-pick $COMMIT"
+      if [ "$EXECUTE" = "true" ]
+      then
+        git cherry-pick $COMMIT
+
+        if [ $? -ne 0 ]
+        then
+            echo "Cherry-pick failed; aborting."
+            exit 1
+        fi
+      fi
+
+      if [ "$EXECUTE" = "true" ]
+      then
+        for POM_XML in $(find . -name "pom.xml")
+        do
+            sed -i 
"s/<version>$PREV_VERSION<\/version>/<version>$NEW_VERSION<\/version>/g" 
"$POM_XML"
+        done
+        for JAVA_FILE in $(find . -name "*.java")
+        do
+            sed -i "s/javax.annotation/jakarta.annotation/g" "$POM_XML"
+            sed -i "s/javax.inject/jakarta.inject/g" "$POM_XML"
+            sed -i "s/javax.persistence/jakarta.persistence/g" "$POM_XML"
+            sed -i "s/javax.xml.bind/jakarta.xml.bind/g" "$POM_XML"
+        done
+        if [ -n "$(git status --porcelain)" ]
+        then
+          git add .
+          git commit --amend --no-edit
+        fi
+      fi
+    done
+       fi
+
+  echo "git tag -f $NEW_TAG"
+
+  if [ "$EXECUTE" = "true" ]
+  then
+         git tag -d $NEW_TAG >/dev/null 2>&1
+         git tag -f $NEW_TAG
+  fi
+
+       PREV_TAG=$TAG
+done

Reply via email to