tools: add custom private key option · nodejs/node@8b3ac4b
@@ -13,7 +13,28 @@ webuser=dist
1313promotablecmd=dist-promotable
1414promotecmd=dist-promote
1515signcmd=dist-sign
16-16+customsshkey="" # let ssh and scp use default key
17+signversion=""
18+19+while getopts ":i:s:" option; do
20+case "${option}" in
21+ i)
22+ customsshkey="-i ${OPTARG}"
23+ ;;
24+ s)
25+ signversion="${OPTARG}"
26+ ;;
27+\?)
28+echo "Invalid option -$OPTARG."
29+exit 1
30+ ;;
31+ :)
32+echo "Option -$OPTARG takes a parameter."
33+exit 1
34+ ;;
35+esac
36+done
37+shift $((OPTIND-1))
17381839################################################################################
1940## Select a GPG key to use
@@ -81,7 +102,7 @@ function sign {
81102exit 1
82103fi
8310484- shapath=$(ssh ${webuser}@${webhost} $signcmd nodejs $version)
105+ shapath=$(ssh ${customsshkey} ${webuser}@${webhost} $signcmd nodejs $version)
8510686107if ! [[ ${shapath} =~ ^/.+/SHASUMS256.txt$ ]]; then
87108echo 'Error: No SHASUMS file returned by sign!'
@@ -96,7 +117,7 @@ function sign {
9611797118 mkdir -p $tmpdir
9811999- scp ${webuser}@${webhost}:${shapath} ${tmpdir}/${shafile}
120+ scp ${customsshkey} ${webuser}@${webhost}:${shapath} ${tmpdir}/${shafile}
100121101122 gpg --default-key $gpgkey --clearsign --digest-algo SHA256 ${tmpdir}/${shafile}
102123 gpg --default-key $gpgkey --detach-sign --digest-algo SHA256 ${tmpdir}/${shafile}
@@ -119,7 +140,7 @@ function sign {
119140fi
120141121142if [ "X${yorn}" == "Xy" ]; then
122- scp ${tmpdir}/${shafile} ${tmpdir}/${shafile}.asc ${tmpdir}/${shafile}.sig ${webuser}@${webhost}:${shadir}/
143+ scp ${customsshkey} ${tmpdir}/${shafile} ${tmpdir}/${shafile}.asc ${tmpdir}/${shafile}.sig ${webuser}@${webhost}:${shadir}/
123144break
124145fi
125146done
@@ -128,25 +149,19 @@ function sign {
128149}
129150130151131-if [ "X${1}" == "X-s" ]; then
132-if [ "X${2}" == "X" ]; then
133-echo "Please supply a version string to sign"
134-exit 1
135-fi
136-137- sign $2
138-exit 0
152+if [ -n "${signversion}" ]; then
153+ sign ${signversion}
154+exit 0
139155fi
140156141-142157# else: do a normal release & promote
143158144159################################################################################
145160## Look for releases to promote
146161147162echo -e "\n# Checking for releases ..."
148163149-promotable=$(ssh ${webuser}@${webhost} $promotablecmd nodejs)
164+promotable=$(ssh ${customsshkey} ${webuser}@${webhost} $promotablecmd nodejs)
150165151166if [ "X${promotable}" == "X" ]; then
152167echo "No releases to promote!"
@@ -179,7 +194,7 @@ for version in $versions; do
179194180195echo -e "\n# Promoting ${version}..."
181196182- ssh ${webuser}@${webhost} $promotecmd nodejs $version
197+ ssh ${customsshkey} ${webuser}@${webhost} $promotecmd nodejs $version
183198184199 sign $version
185200