Adding helper script for jetty releases
diff --git a/release-jetty.sh b/release-jetty.sh
new file mode 100755
index 0000000..ec03198
--- /dev/null
+++ b/release-jetty.sh
@@ -0,0 +1,183 @@
+#!/bin/bash
+
+echo ""
+echo "-----------------------------------------------"
+echo " Verify Environment"
+
+requiredExecutable() {
+ hash $1 2>/dev/null
+ if [ $? != 0 ] ; then
+ echo "ERROR: $1 not found. Install $1"
+ exit -1
+ fi
+}
+
+requiredExecutable "git"
+requiredExecutable "xmllint"
+requiredExecutable "sed"
+requiredExecutable "gpg"
+requiredExecutable "egrep"
+requiredExecutable "mvn"
+
+proceedyn() {
+ while true; do
+ read -p "$1 " yn
+ case ${yn:-$2} in
+ [Yy]* ) return 0;;
+ [Nn]* ) return 1;;
+ * ) echo "Please answer yes or no.";;
+ esac
+ done
+}
+
+echo ""
+echo "-----------------------------------------------"
+echo " Collect Information About Release"
+
+function gitFindRemoteByUrl() {
+ URL="$1"
+ for GREMOTE in $(git remote); do
+ git ls-remote --get-url $GREMOTE | grep "$URL" 2>&1 > /dev/null
+ if [ $? -eq 0 ] ; then
+ echo $GREMOTE
+ fi
+ done
+ return 0
+}
+
+GIT_REMOTE_URL="git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project.git"
+GIT_REMOTE_ID=$(gitFindRemoteByUrl "$GIT_REMOTE_URL")
+GIT_BRANCH_ID=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match)
+
+if [ -z "$GIT_REMOTE_ID" ] ; then
+ echo "ERROR: Unable to determine git remote id for $GIT_REMOTE_URL"
+ echo "Are you running this build from a properly cloned git local repository?"
+ exit -1
+fi
+
+# Ensure that git user is in their gpg key list
+GIT_USER_EMAIL=`git config --get user.email`
+
+#gpg -q --list-keys "$GIT_USER_EMAIL" 2>&1 > /dev/null
+#if [ $? != 0 ] ; then
+# echo "ERROR: git user.email of $GIT_USER_EMAIL is not present in your gpg --list-keys"
+# echo "Go ahead and make one $ gpg --gen-key"
+# exit -1
+#fi
+
+VER_CURRENT=`sed -e "s/xmlns/ignore/" pom.xml | xmllint --xpath "/project/version/text()" -`
+read -e -p "Release Version ? " VER_RELEASE
+read -e -p "Next Dev Version ? " VER_NEXT
+# VER_RELEASE=9.3.5.v20151012
+# VER_NEXT=9.3.6-SNAPSHOT
+TAG_NAME="jetty-$VER_RELEASE"
+
+# Ensure tag doesn't exist (yet)
+git rev-parse --quiet --verify "$TAG_NAME" 2>&1 > /dev/null
+if [ $? -eq 0 ] ; then
+ echo ""
+ echo "ERROR: Git Tag $TAG_NAME already exists"
+ echo ""
+ git show -s "$TAG_NAME"
+ exit -1
+fi
+
+ALT_DEPLOY_DIR=$HOME/.m2/alt-deploy
+if [ ! -d "$ALT_DEPLOY_DIR" ] ; then
+ mkdir -p "$ALT_DEPLOY_DIR"
+fi
+
+# DEPLOY_OPTS="-Dmaven.test.failure.ignore=true"
+DEPLOY_OPTS="-Dtest=None"
+# DEPLOY_OPTS="$DEPLOY_OPTS -DaltDeploymentRepository=intarget::default::file://$ALT_DEPLOY_DIR/"
+
+echo ""
+echo "-----------------------------------------------"
+echo " Release Plan Review"
+echo ""
+echo "Git Remote ID : $GIT_REMOTE_ID"
+echo "Git Branch ID : $GIT_BRANCH_ID"
+echo "Git user.email : $GIT_USER_EMAIL"
+echo "Current Version : $VER_CURRENT"
+echo "Release Version : $VER_RELEASE"
+echo "Next Dev Version : $VER_NEXT"
+echo "Tag name : $TAG_NAME"
+echo "Maven Deploy Opts: $DEPLOY_OPTS"
+
+reportMavenTestFailures() {
+ failFiles=$(egrep -lr --include="*.txt" -E "^Tests .* FAILURE" .)
+ oldIFS="$IFS"
+ IFS='
+'
+ IFS=${IFS:0:1}
+ failarray=( $failFiles )
+ IFS="$oldIFS"
+
+ for index in ${!failarray[@]}; do
+ echo ${failarray[index]}
+ cat ${failarray[index]}
+ done
+
+ if [ ${#failarray[@]} -gt 0 ] ; then
+ echo "There are ${#failarray[@]} Test Cases with failures"
+ else
+ echo "There are no testcases with failures"
+ fi
+}
+
+echo ""
+if proceedyn "Are you sure you want to release using above? (y/N)" n; then
+ echo ""
+ if proceedyn "Update VERSION.txt for $VER_RELEASE? (Y/n)" y; then
+ mvn -N -Pupdate-version
+ cp VERSION.txt VERSION.txt.backup
+ cat VERSION.txt.backup | sed -e "s/$VER_CURRENT/$VER_RELEASE/" > VERSION.txt
+ rm VERSION.txt.backup
+ fi
+
+ # This is equivalent to 'mvn release:prepare'
+ if proceedyn "Update project.versions for $VER_RELEASE? (Y/n)" y; then
+ mvn org.codehaus.mojo:versions-maven-plugin:2.1:set \
+ -DoldVersion="$VER_CURRENT" \
+ -DnewVersion="$VER_RELEASE"
+ fi
+ if proceedyn "Commit $VER_RELEASE updates? (Y/n)" y; then
+ git commit -a -m "Updating to version $VER_RELEASE"
+ fi
+ if proceedyn "Create Tag $TAG_NAME? (Y/n)" y; then
+ echo "TODO: Sign tags with GIT_USER_EMAIL=$GIT_USER_EMAIL"
+ git tag -m "Creating tag $TAG_NAME" $TAG_NAME
+ fi
+
+ # This is equivalent to 'mvn release:perform'
+ if proceedyn "Build/Deploy from tag $TAG_NAME? (Y/n)" y; then
+ git checkout $TAG_NAME
+ mvn clean package source:jar javadoc:jar gpg:sign deploy \
+ -Peclipse-release $DEPLOY_OPTS
+ reportMavenTestFailures
+ git checkout $GIT_BRANCH_ID
+ fi
+ if proceedyn "Update working directory for $VER_NEXT? (Y/n)" y; then
+ echo "Update VERSION.txt for $VER_NEXT"
+ cp VERSION.txt VERSION.txt.backup
+ echo "jetty-$VER_NEXT" > VERSION.txt
+ echo "" >> VERSION.txt
+ cat VERSION.txt.backup >> VERSION.txt
+ echo "Update project.versions for $VER_NEXT"
+ mvn org.codehaus.mojo:versions-maven-plugin:2.1:set \
+ -DoldVersion="$VER_RELEASE" \
+ -DnewVersion="$VER_NEXT"
+ echo "Commit $VER_NEXT"
+ if proceedyn "Commit updates in working directory for $VER_NEXT? (Y/n)" y; then
+ git commit -a -m "Updating to version $VER_NEXT"
+ fi
+ fi
+ if proceedyn "Push git commits to remote $GIT_REMOTE_ID? (Y/n)" y; then
+ git push $GIT_REMOTE_ID $GIT_BRANCH_ID
+ git push $GIT_REMOTE_ID --tags
+ fi
+else
+ echo "Not performing release"
+fi
+
+