| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #! /bin/bash
- set -euo pipefail
- ## Upload a deployment
- ## from the "org.jmonkeyengine" namespace in Sonatype's OSSRH staging area
- ## to Sonatype's Central Publisher Portal
- ## so the deployment can be tested and then published or dropped.
- ## IMPORTANT: The upload request must originate
- ## from the IP address used to stage the deployment to the staging area!
- # The required -p and -u flags on the command line
- # specify the password and username components of a "user token"
- # generated using the web interface at https://central.sonatype.com/account
- while getopts p:u: flag
- do
- case "${flag}" in
- p) centralPassword=${OPTARG};;
- u) centralUsername=${OPTARG};;
- esac
- done
- # Combine both components into a base64 "user token"
- # suitable for the Authorization header of a POST request:
- token=$(printf %s:%s "${centralUsername}" "${centralPassword}" | base64)
- # Send a POST request to upload the deployment:
- server='ossrh-staging-api.central.sonatype.com'
- endpoint='/manual/upload/defaultRepository/org.jmonkeyengine'
- url="https://${server}${endpoint}"
- statusCode=$(curl "${url}" \
- --no-progress-meter \
- --output postData1.txt \
- --write-out '%{response_code}' \
- --request POST \
- --header 'accept: */*' \
- --header "Authorization: Bearer ${token}" \
- --data '')
- echo "Status code = ${statusCode}"
- echo 'Received data:'
- cat postData1.txt
- echo '[EOF]'
- # Retry if the default repo isn't found (status=400).
- if [ "${statusCode}" == "400" ]; then
- echo "Will retry after 30 seconds."
- sleep 30
- statusCode2=$(curl "${url}" \
- --no-progress-meter \
- --output postData2.txt \
- --write-out '%{response_code}' \
- --request POST \
- --header 'accept: */*' \
- --header "Authorization: Bearer ${token}" \
- --data '')
- echo "Status code = ${statusCode2}"
- echo 'Received data:'
- cat postData2.txt
- echo '[EOF]'
- fi
|