+#!/bin/bash
+
+dir=`dirname $0`
+
+if [ $# -lt 3 ]; then
+ echo "Usage: sign.sh <keystore location> <signing property file> <TSA URL>"
+ echo ""
+ echo "<signing property file> must contain the following properties:"
+ echo " jarsigner.alias: keystore entry alias"
+ echo " jarsigner.storepass: password for the keystore"
+ echo " jarsigner.keypass: password for the key <jarsigner.alias>"
+ echo ""
+ echo "<TSA URL> can be empty is timestamping is not desired."
+ exit -1
+fi
+
+keystore=$1
+signprops=$2
+tsa=$3
+
+function signprop {
+ grep "${1}" ${signprops}|cut -d'=' -f2
+}
+
+echo "----"
+echo "script directory: ${dir}"
+echo "keystore: ${keystore}"
+echo "signing property file: ${signprops}"
+echo "TSA URL: ${tsa}"
+
+keyalias=$(signprop 'jarsigner.alias')
+storepass=$(signprop 'jarsigner.storepass')
+keypass=$(signprop 'jarsigner.keypass')
+
+for jar in `find ${dir}/target/repository/plugins/ -type f -not -ipath '*.source_*.jar'`; do
+ echo "----"
+ if [ -z ${tsa} ]; then
+ echo "Signing $jar"
+ jarsigner -keystore ${keystore} \
+ -storepass ${storepass} \
+ -keypass ${keypass} \
+ -verbose \
+ $jar \
+ ${keyalias}
+ else
+ echo "Signing and timestamping $jar"
+ jarsigner -keystore ${keystore} \
+ -storepass ${storepass} \
+ -keypass ${keypass} \
+ -verbose \
+ -tsa "${tsa}" \
+ $jar \
+ ${keyalias}
+ fi
+done
+