]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - releng/org.simantics.sdk.build.p2.site/sign.sh
Support signing of platform external dependencies and SDK
[simantics/platform.git] / releng / org.simantics.sdk.build.p2.site / sign.sh
diff --git a/releng/org.simantics.sdk.build.p2.site/sign.sh b/releng/org.simantics.sdk.build.p2.site/sign.sh
new file mode 100755 (executable)
index 0000000..04dc132
--- /dev/null
@@ -0,0 +1,56 @@
+#!/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
+