tools: add custom private key option · nodejs/node@8b3ac4b

@@ -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))

17381839

################################################################################

1940

## Select a GPG key to use

@@ -81,7 +102,7 @@ function sign {

81102

exit 1

82103

fi

8310484-

shapath=$(ssh ${webuser}@${webhost} $signcmd nodejs $version)

105+

shapath=$(ssh ${customsshkey} ${webuser}@${webhost} $signcmd nodejs $version)

8510686107

if ! [[ ${shapath} =~ ^/.+/SHASUMS256.txt$ ]]; then

87108

echo '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 {

119140

fi

120141121142

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

}

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

139155

fi

140156141-142157

# else: do a normal release & promote

143158144159

################################################################################

145160

## Look for releases to promote

146161147162

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

148163149-

promotable=$(ssh ${webuser}@${webhost} $promotablecmd nodejs)

164+

promotable=$(ssh ${customsshkey} ${webuser}@${webhost} $promotablecmd nodejs)

150165151166

if [ "X${promotable}" == "X" ]; then

152167

echo "No releases to promote!"

@@ -179,7 +194,7 @@ for version in $versions; do

179194180195

echo -e "\n# Promoting ${version}..."

181196182-

ssh ${webuser}@${webhost} $promotecmd nodejs $version

197+

ssh ${customsshkey} ${webuser}@${webhost} $promotecmd nodejs $version

183198184199

sign $version

185200