@@ -13,7 +13,28 @@ webuser=dist
13
13
promotablecmd=dist-promotable
14
14
promotecmd=dist-promote
15
15
signcmd=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 ))
17
38
18
39
# ###############################################################################
19
40
# # Select a GPG key to use
@@ -81,7 +102,7 @@ function sign {
81
102
exit 1
82
103
fi
83
104
84
- shapath=$( ssh ${webuser} @${webhost} $signcmd nodejs $version )
105
+ shapath=$( ssh ${customsshkey} ${ webuser} @${webhost} $signcmd nodejs $version )
85
106
86
107
if ! [[ ${shapath} =~ ^/.+/SHASUMS256.txt$ ]]; then
87
108
echo ' Error: No SHASUMS file returned by sign!'
@@ -96,7 +117,7 @@ function sign {
96
117
97
118
mkdir -p $tmpdir
98
119
99
- scp ${webuser} @${webhost} :${shapath} ${tmpdir} /${shafile}
120
+ scp ${customsshkey} ${ webuser} @${webhost} :${shapath} ${tmpdir} /${shafile}
100
121
101
122
gpg --default-key $gpgkey --clearsign --digest-algo SHA256 ${tmpdir} /${shafile}
102
123
gpg --default-key $gpgkey --detach-sign --digest-algo SHA256 ${tmpdir} /${shafile}
@@ -119,7 +140,7 @@ function sign {
119
140
fi
120
141
121
142
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} /
123
144
break
124
145
fi
125
146
done
@@ -128,25 +149,19 @@ function sign {
128
149
}
129
150
130
151
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
139
155
fi
140
156
141
-
142
157
# else: do a normal release & promote
143
158
144
159
# ###############################################################################
145
160
# # Look for releases to promote
146
161
147
162
echo -e " \n# Checking for releases ..."
148
163
149
- promotable=$( ssh ${webuser} @${webhost} $promotablecmd nodejs)
164
+ promotable=$( ssh ${customsshkey} ${ webuser} @${webhost} $promotablecmd nodejs)
150
165
151
166
if [ " X${promotable} " == " X" ]; then
152
167
echo " No releases to promote!"
@@ -179,7 +194,7 @@ for version in $versions; do
179
194
180
195
echo -e " \n# Promoting ${version} ..."
181
196
182
- ssh ${webuser} @${webhost} $promotecmd nodejs $version
197
+ ssh ${customsshkey} ${ webuser} @${webhost} $promotecmd nodejs $version
183
198
184
199
sign $version
185
200
0 commit comments