Repository: calcite-avatica-go
Updated Branches:
  refs/heads/master 2a9b4208f -> d637e3391


[CALCITE-2533] Prompt for signing key to use when signing release in release
script


Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/commit/d637e339
Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/tree/d637e339
Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/diff/d637e339

Branch: refs/heads/master
Commit: d637e3391a02e0941458b85fdba6c69d3833207f
Parents: 2a9b420
Author: Francis Chuang <[email protected]>
Authored: Wed Sep 5 21:08:06 2018 +1000
Committer: Francis Chuang <[email protected]>
Committed: Wed Sep 5 21:08:06 2018 +1000

----------------------------------------------------------------------
 make-release-artifacts.sh | 63 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 62 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/d637e339/make-release-artifacts.sh
----------------------------------------------------------------------
diff --git a/make-release-artifacts.sh b/make-release-artifacts.sh
index 3876ea5..3266eea 100755
--- a/make-release-artifacts.sh
+++ b/make-release-artifacts.sh
@@ -72,8 +72,69 @@ cd $releaseDir
 # Calculate SHA256
 gpg --print-md SHA256 $tarFile > $tarFile.sha256
 
+# Select GPG key for signing
+KEYS=()
+
+GPG_COMMAND="gpg2"
+
+get_gpg_keys (){
+    GPG_KEYS=$($GPG_COMMAND --list-keys --with-colons --keyid-format LONG)
+
+    KEY_NUM=1
+
+    KEY_DETAILS=""
+
+    while read -r line; do
+
+        IFS=':' read -ra PART <<< "$line"
+
+        if [ ${PART[0]} == "pub" ]; then
+
+            if [ -n "$KEY_DETAILS" ]; then
+                KEYS[$KEY_NUM]=$KEY_DETAILS
+                KEY_DETAILS=""
+                ((KEY_NUM++))
+
+            fi
+
+            KEY_DETAILS=${PART[4]}
+        fi
+
+        if [ ${PART[0]} == "uid" ]; then
+            KEY_DETAILS="$KEY_DETAILS - ${PART[9]}"
+        fi
+
+    done <<< "$GPG_KEYS"
+
+    if [ -n "$KEY_DETAILS" ]; then
+        KEYS[$KEY_NUM]=$KEY_DETAILS
+    fi
+}
+
+get_gpg_keys
+
+if [ "${#KEYS[@]}" -le 0 ]; then
+    echo "You do not have any GPG keys available. Exiting..."
+    exit 1
+fi
+
+echo "You have the following GPG keys:"
+
+for i in "${!KEYS[@]}"; do
+        echo "$i) ${KEYS[$i]}"
+done
+
+read -p "Select your GPG key for signing: " KEY_INDEX
+
+GPG_KEY=$(sed 's/ -.*//' <<< ${KEYS[$KEY_INDEX]})
+
+if [ -z $GPG_KEY ]; then
+    echo "Selected key is invalid. Exiting..."
+    exit 1
+fi
+
 # Sign
-gpg --armor --output $tarFile.asc --detach-sig $tarFile
+gpg -u $GPG_KEY --armor --output $tarFile.asc --detach-sig $tarFile
 
 echo "Release created!"
 # End
\ No newline at end of file

Reply via email to