#!/usr/bin/env bash # # Copyright 2019 the original author or authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # set -e #set -x VERSION=$1 echo "SDKMAN_CONSUMER_KEY: $(echo ${SDKMAN_CONSUMER_KEY} | cut -c-3)..." echo "SDKMAN_CONSUMER_TOKEN: $(echo ${SDKMAN_CONSUMER_TOKEN} | cut -c-3)..." echo "Publishing version ${VERSION} on sdkman.io" function publishRelease() { VERSION=$1 SDKMAN_PLATFORM=$2 MVND_PLATFORM=$3 FILE="mvnd-${VERSION}-${MVND_PLATFORM}.zip" URL="https://github.com/mvndaemon/mvnd/releases/download/${VERSION}/${FILE}" RESPONSE="$(curl -s -X POST \ -H "Consumer-Key: ${SDKMAN_CONSUMER_KEY}" \ -H "Consumer-Token: ${SDKMAN_CONSUMER_TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "mvnd", "version": "'${VERSION}'", "platform" : "'${SDKMAN_PLATFORM}'", "url": "'${URL}'"}' \ https://vendors.sdkman.io/release)" node -pe " var json = JSON.parse(process.argv[1]); if (json.status == 201 || json.status == 409) { json.status + ' as expected from /release for ${FILE}'; } else { console.log('Unexpected status from /release for ${FILE}: ' + process.argv[1]); process.exit(1); } " "${RESPONSE}" } publishRelease ${VERSION} LINUX_64 linux-amd64 publishRelease ${VERSION} MAC_OSX darwin-amd64 publishRelease ${VERSION} WINDOWS_64 windows-amd64 echo "Setting ${VERSION} as a default" RESPONSE="$(curl -s -X PUT \ -H "Consumer-Key: ${SDKMAN_CONSUMER_KEY}" \ -H "Consumer-Token: ${SDKMAN_CONSUMER_TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "mvnd", "version": "'${VERSION}'"}' \ https://vendors.sdkman.io/default)" node -pe " var json = JSON.parse(process.argv[1]); if (json.status == 202) { json.status + ' as expected from /default'; } else { console.log('Unexpected status from /default: ' + process.argv[1]); process.exit(1); } " "${RESPONSE}" RELEASE_URL=`curl -s -i https://git.io -F url=https://github.com/mvndaemon/mvnd/releases/tag/${VERSION} | grep Location | sed -e 's/Location: //g' | tr -d '\n' | tr -d '\r'` echo "RELEASE_URL = $RELEASE_URL" RESPONSE="$(curl -s -X POST \ -H "Consumer-Key: ${SDKMAN_CONSUMER_KEY}" \ -H "Consumer-Token: ${SDKMAN_CONSUMER_TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"candidate": "mvnd", "version": "'${VERSION}'", "url": "'${RELEASE_URL}'"}' \ https://vendors.sdkman.io/announce/struct)" node -pe " var json = JSON.parse(process.argv[1]); if (json.status == 200 || json.status == 201) { json.status + ' as expected from /announce/freeform'; } else { console.log('Unexpected status from /announce/freeform: ' + process.argv[1]); process.exit(1); } " "${RESPONSE}"