[hibernate-commits] Hibernate SVN: r20638 - core/branches/Branch_3_5.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Sep 15 10:34:50 EDT 2010


Author: steve.ebersole at jboss.com
Date: 2010-09-15 10:34:49 -0400 (Wed, 15 Sep 2010)
New Revision: 20638

Added:
   core/branches/Branch_3_5/tagRelease.sh
Log:
HHH-5524 - tagRelease.sh

Added: core/branches/Branch_3_5/tagRelease.sh
===================================================================
--- core/branches/Branch_3_5/tagRelease.sh	                        (rev 0)
+++ core/branches/Branch_3_5/tagRelease.sh	2010-09-15 14:34:49 UTC (rev 20638)
@@ -0,0 +1,107 @@
+#! /bin/sh
+
+usage="Usage: tagRelease [-u] [-e exportDirectory] [-r releaseVersion] [-d devVersion]"
+projectDir=`pwd`
+
+releaseVersion=
+devVersion=
+
+performUpdate=''
+exportDirectory=''
+
+################################################################################
+# Update all project poms and commit the changes. 
+#
+# $1: project directory (base directory of recursve find)
+# $2: new value for the pom version
+# $3: new scm url
+updatePomVersionsAndCommit() {
+    for i in `find $1 -name "pom.xml"`; do 
+        xmlstarlet ed -P -N x="http://maven.apache.org/POM/4.0.0" \
+        		-u "/x:project/x:parent/x:version" -v $2 \
+        		-u "/x:project/x:version" -v $2 \
+        		-u "/x:project/x:scm/x:connection" -v scm:svn:$3 \
+        		-u "/x:project/x:scm/x:developerConnection" -v scm:svn:$3 \
+        		-u "/x:project/x:scm/x:url" -v $3 \
+        		$i > tmp
+        mv tmp $i
+    done
+
+    svn commit $projectDirectory -m "Updating pom versions to $1 for release tagging"
+}
+
+################################################################################
+# Start script processing
+################################################################################
+
+while getopts ":e:r:d:u" opt; do
+    case $opt in
+        r)
+            releaseVersion=$OPTARG;;
+        d) 
+            devVersion=$OPTARG;;
+        u) 
+            performUpdate="true";;
+        e) 
+            exportDirectory=$OPTARG;;
+        h)
+            echo $usage;;
+        \?) 
+            echo $usage
+            exit 1;;
+        *) 
+            echo $usage
+            exit 1;;
+    esac
+done
+
+if [ -z $releaseVersion ]; then
+    read -p "Enter the release version: " releaseVersion
+fi
+if [ -z $devVersion ]; then
+    read -p "Enter the development version: " devVersion
+fi
+
+projectName=`xmlstarlet sel -N x=http://maven.apache.org/POM/4.0.0 -t -v "/x:project/x:artifactId" pom.xml`
+if [ -Z "$projectName" ]; then
+    echo "Could not determine propject name (misasing/incomplete pom?)."
+    exit;
+fi
+projectUrl=`svn info $projectDir | grep URL | awk '{print $2}'`
+tagUrl=`echo $projectUrl | sed 's|\(.*\)/.*$|\1/tags/|'`$projectName-$releaseVersion
+
+
+################################################################################
+# Confirm data
+
+echo "About to tag release with following information:"
+echo "  tag version : $releaseVersion"
+echo "  dev version : $devVersion"
+echo "  dev url : $projectUrl" 
+echo "  tag url : $tagUrl"
+while true; do
+    read -p "Continue? " yn
+    case $yn in
+        [Yy]* ) break;;
+        [Nn]* ) exit;;
+        * ) echo "Please answer yes or no.";;
+    esac
+done
+
+################################################################################
+# Go, go , go
+
+if [ -n "$performUpdate" ]; then
+    echo "Performing requested svn update..."
+    svn update $projectDir
+fi
+
+updatePomVersionsAndCommit $projectDir $releaseVersion $tagUrl
+
+svn copy $projectUrl/ $tagUrl -m "Tagging $releaseVersion release"
+
+updatePomVersionsAndCommit $projectDir $devVersion $projectUrl
+
+if [ $exportDirectory ]; then
+	svn export $tagUrl $exportDirectory
+fi


Property changes on: core/branches/Branch_3_5/tagRelease.sh
___________________________________________________________________
Name: svn:executable
   + *



More information about the hibernate-commits mailing list