12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/bin/bash
-
- set -e
-
- EMAIL=$1
- DOMAIN=$2
-
- if [ -z "${DOMAIN}" ] || [ -z "${EMAIL}" ]; then
- echo "You need to provide email and domain as parameters."
- exit 1
- fi
-
- JITSI_INSTALLATION="DEBIAN"
- JAAS_ENDPOINT="https://account-provisioning.cloudflare.jitsi.net/operations"
- CHALLENGE_FILE="/usr/share/jitsi-meet/.well-known/jitsi-challenge.txt"
- SUPPORT_MSG="Reach out to JaaS support or retry with /usr/share/jitsi-meet/scripts/register-jaas-account.sh"
-
- create_error=0
- create_data=$(curl -s -f -X 'POST' "${JAAS_ENDPOINT}" -H 'Content-Type: application/json' -H 'accept: */*' \
- -d "{ \"domain\": \"${DOMAIN}\", \"email\": \"${EMAIL}\", \"jitsiInstallation\": \"${JITSI_INSTALLATION}\" }") || create_error=$?
- if [ ${create_error} -ne 0 ]; then
- echo "Account creation failed. Status: ${create_error}, response: ${create_data}"
- exit 2
- fi
-
- # make sure .well-known exists
- mkdir -p "$(dirname "$CHALLENGE_FILE")"
- # Creating the challenge file
- echo "${create_data}" | jq -r .challenge > ${CHALLENGE_FILE}
-
- op_id=$(echo "${create_data}" | jq -r .operationId)
- ready_error=0
- ready_data=$(curl -s -f -X 'PUT' "${JAAS_ENDPOINT}/${op_id}/ready") || ready_error=$?
- if [ ${ready_error} -ne 0 ]; then
- echo "Validating domain failed. Status: ${ready_error}"
- echo "Response: "
- echo "${ready_data}" | jq -r
- echo "${SUPPORT_MSG}"
- echo
- exit 3
- fi
-
- SLEEP_TIME=0
- WAIT_BEFORE_CHECK=10
- TIMEOUT=60
- echo -n "Creating..."
- (while true; do
- provisioned_data=$(curl -s -f "${JAAS_ENDPOINT}/${op_id}")
-
- status=$(echo "${provisioned_data}" | jq -r .status)
-
- if [ "${status}" == "PROVISIONED" ]; then
- echo ""
- echo "=================="
- echo ""
- echo "JaaS account was created. To finish setup follow the email that was sent."
- echo ""
- echo "=================="
- exit 0;
- elif [ "${status}" == "FAILED" ]; then
- echo ""
- echo "=================="
- echo ""
- echo "JaaS account creation failed:${provisioned_data}"
- echo ""
- echo "=================="
- exit 4
- elif [ "${status}" == "VERIFIED" ] && [ "${verified}" != "true" ]; then
- echo -n "Account was successfully verified..."
- verified="true"
- fi
-
- if [ ${SLEEP_TIME} -ge ${TIMEOUT} ]; then
- echo ""
- echo "=================="
- echo ""
- echo "Timeout creating account. ${SUPPORT_MSG}"
- echo ""
- echo "=================="
- exit 5
- fi
-
- echo -n "waiting..."
- sleep ${WAIT_BEFORE_CHECK}
- SLEEP_TIME=$((SLEEP_TIME+WAIT_BEFORE_CHECK))
- done)
-
- rm ${CHALLENGE_FILE} || true
|