#!/bin/bash keys="$(gpg --list-keys | grep ^pub | sed 's#/# #' | awk '{ print $3 }')" key_count="$(echo ${keys} | wc -w)" seen="" while [[ $# > 0 ]] ; do param="$1" if [[ $param == "--signing-key" ]]; then # disambiguating or overriding key key="$2" shift else seen="${seen} ${param}" fi shift done params=${seen} if [[ ${key_count} -lt 1 ]]; then echo "" echo "You are attempting to deploy a maven release without a GPG signing key." echo "You need to generate a signing key in accordance with the instructions" echo "found at http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven" exit 1 fi # if a key is specified, use that, else use the default, unless there are many if [[ -n "${key}" ]]; then #validate key keystatus=$(gpg --list-keys | grep ${key} | awk '{print $1}') if [ "${keystatus}" != "pub" ]; then echo "" echo "Could not find public key with label \"${key}\"" echo "" echo "Available keys from: " gpg --list-keys | grep --invert-match '^sub' exit 1 fi key_param="-Dgpg.keyname=${key}" elif [ ${key_count} -gt 1 ]; then echo "" echo "You are attempting to deploy a maven release but have more than one GPG" echo "signing key and did not specify which one you wish to sign with." echo "" echo "usage $0 [--signing-key ] [ ...]" echo "" echo -n "Available keys from: " gpg --list-keys | grep --invert-match '^sub' exit 1; fi mvn ${params} clean site:jar -P sonatype-oss-release ${key_param} deploy