@@ -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 ))
1738
1839# ###############################################################################
1940# # Select a GPG key to use
@@ -81,7 +102,7 @@ function sign {
81102 exit 1
82103 fi
83104
84- shapath=$( ssh ${webuser} @${webhost} $signcmd nodejs $version )
105+ shapath=$( ssh ${customsshkey} ${ webuser} @${webhost} $signcmd nodejs $version )
85106
86107 if ! [[ ${shapath} =~ ^/.+/SHASUMS256.txt$ ]]; then
87108 echo ' Error: No SHASUMS file returned by sign!'
@@ -96,7 +117,7 @@ function sign {
96117
97118 mkdir -p $tmpdir
98119
99- scp ${webuser} @${webhost} :${shapath} ${tmpdir} /${shafile}
120+ scp ${customsshkey} ${ webuser} @${webhost} :${shapath} ${tmpdir} /${shafile}
100121
101122 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 {
119140 fi
120141
121142 if [ " 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} /
123144 break
124145 fi
125146 done
@@ -128,25 +149,19 @@ function sign {
128149}
129150
130151
131- 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
140156
141-
142157# else: do a normal release & promote
143158
144159# ###############################################################################
145160# # Look for releases to promote
146161
147162echo -e " \n# Checking for releases ..."
148163
149- promotable=$( ssh ${webuser} @${webhost} $promotablecmd nodejs)
164+ promotable=$( ssh ${customsshkey} ${ webuser} @${webhost} $promotablecmd nodejs)
150165
151166if [ " X${promotable} " == " X" ]; then
152167 echo " No releases to promote!"
@@ -179,7 +194,7 @@ for version in $versions; do
179194
180195 echo -e " \n# Promoting ${version} ..."
181196
182- ssh ${webuser} @${webhost} $promotecmd nodejs $version
197+ ssh ${customsshkey} ${ webuser} @${webhost} $promotecmd nodejs $version
183198
184199 sign $version
185200
0 commit comments