get default maven version from distribution file name

Also this patch fixes an error when in the dist folder
are multiple files

Change-Id: I56438e09c0817f010bf86f9aa49e3d0c7f8039ec
(cherry picked from commit 6bc4372cc73a1155fd8dcd919571aed2f54daef5)
diff --git a/maven/push-gwt.sh b/maven/push-gwt.sh
index ff62b38..c2064b9 100755
--- a/maven/push-gwt.sh
+++ b/maven/push-gwt.sh
@@ -24,44 +24,35 @@
 # repo id is ignored by local repo
 repoId=${GWT_MAVEN_REPO_ID:=none}
 
-# prompt for info
-read -e -p"GWT version for Maven (ex: 2.4.0): " gwtVersion
-case $gwtVersion in
-  *.*.* )
-    ;;
-  *.*.*-* )
-    ;;
-  * )
-    echo "Please enter a version of the form x.y.z or x.y.z-abc" 
-    exit 1;;
-esac
-
+# use GWT_DIST_FILE to specify the default distribution file
 gwtTrunk=$(dirname $(pwd))
-if [ -f ${gwtTrunk}/build/dist/gwt-*.zip ]; then
-  gwtPathDefault=$(ls ${gwtTrunk}/build/dist/gwt-*.zip | head -n1)
-  gwtPathPrompt=" ($gwtPathDefault)"
+gwtPathDefault=${GWT_DIST_FILE:=$(ls -t1 ${gwtTrunk}/build/dist/gwt-*.zip 2>/dev/null | head -1)}
+if [[ -f "$gwtPathDefault" ]]; then
+  gwtPathPrompt="($gwtPathDefault)"
 fi
+
+VERSION_REGEX='[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*-*.*'
+
+# use GWT_VERSION to specify the default version or get it from the file name
+gwtVersionDefault=${GWT_VERSION:=$(expr "$gwtPathDefault" : '.*gwt-\('$VERSION_REGEX'\)\.zip')}
+
+# prompt for info
+read -e -p"GWT version for Maven (${gwtVersionDefault:-ex: 2.8.0-SNAPSHOT}): " gwtVersion
+gwtVersion=${gwtVersion:=$gwtVersionDefault}
+if ! expr "$gwtVersion" : "$VERSION_REGEX" >/dev/null; then
+  echo "Please enter a version of the form x.y.z or x.y.z-abc"
+  exit 1
+fi
+
 read -e -p"Path to GWT distro zip $gwtPathPrompt: " gwtPath
-case $gwtPath in
-  "" )
-    gwtPath=$gwtPathDefault
-    ;;
-  * )
-    ;;
-esac
-if [[ "$gwtPath" == "" || ! -f  $gwtPath ]]; then
+gwtPath=${gwtPath:=$gwtPathDefault}
+if [[ ! -f  $gwtPath ]]; then
   echo "ERROR: Cannot find file at \"$gwtPath\""
   exit 1
 fi
 
 read -e -p"Deploy to repo URL ($repoUrlDefault): " repoUrl
-case $repoUrl in
-  "" )
-    repoUrl=$repoUrlDefault
-    ;;
-  * )
-    ;;
-esac
+repoUrl=${repoUrl:=$repoUrlDefault}
 
 # setting the repoUrl to 'install' will instruct to maven-gwt to
 # execute the install goal instead of the deploy one.
@@ -69,7 +60,9 @@
   repoUrl=install
 fi
 
+# use GWT_GPG_PASS environment var by default if set
 read -p"GPG passphrase for jar signing (may skip for local deployment): " gpgPassphrase
+gpgPassphrase=${gpgPassphrase:=$GWT_GPG_PASS}
 
 maven-gwt "$gwtVersion" \
           "$gwtPath" \