Skip to content

Commit 5ee4e86

Browse files
krydosMylesBorins
authored andcommitted
tools: add custom private key option
Add -i option for release.sh that allows users to specify non-default private key for ssh and scp commands. Change argument parsing to getopts. PR-URL: #14401 Reviewed-By: Jeremiah Senkpiel <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
1 parent 87ff86b commit 5ee4e86

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

tools/release.sh

+30-15
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,28 @@ webuser=dist
1313
promotablecmd=dist-promotable
1414
promotecmd=dist-promote
1515
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))
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
139155
fi
140156

141-
142157
# else: do a normal release & promote
143158

144159
################################################################################
145160
## Look for releases to promote
146161

147162
echo -e "\n# Checking for releases ..."
148163

149-
promotable=$(ssh ${webuser}@${webhost} $promotablecmd nodejs)
164+
promotable=$(ssh ${customsshkey} ${webuser}@${webhost} $promotablecmd nodejs)
150165

151166
if [ "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

Comments
 (0)