Merge pull request #281 from TheCatLady/universal-cloudflared

universal-cloudflared: fix handling of API responses
This commit is contained in:
aptalca
2022-01-11 08:33:46 -05:00
committed by GitHub
+4 -7
View File
@@ -87,7 +87,7 @@ if [[ ${#CF_ACCOUNT_ID} -gt 0 ]] && [[ ${#CF_API_TOKEN} -gt 0 ]] && [[ ${#CF_TUN
--data "{\"name\":\"${CF_TUNNEL_NAME}\",\"tunnel_secret\":\"${CF_TUNNEL_SECRET}\"}")
echo ${JSON_RESULT} | jq
JSON_CODE_VALUE=$(echo ${JSON_RESULT} | jq -rc ".errors[].code")
JSON_CODE_VALUE=$(echo ${JSON_RESULT} | jq -rc ".code // .errors[].code")
if [[ ${JSON_CODE_VALUE} -eq 1013 ]]; then
echo "**** You already have a cloudflare tunnel named ${CF_TUNNEL_NAME} ****"
@@ -99,7 +99,7 @@ if [[ ${#CF_ACCOUNT_ID} -gt 0 ]] && [[ ${#CF_API_TOKEN} -gt 0 ]] && [[ ${#CF_TUN
echo ${JSON_RESULT} | jq
echo "**** Fetching existing cloudflare tunnel (${CF_TUNNEL_NAME}) via API... ****"
CF_TUNNEL_ID=$(echo ${JSON_RESULT} | jq -rc ".result[].id")
CF_TUNNEL_ID=$(echo ${JSON_RESULT} | jq -rc ".[].id? // .result[].id")
JSON_RESULT=$(curl -sX \
GET "https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/tunnels/${CF_TUNNEL_ID}?" \
-H "Authorization: Bearer ${CF_API_TOKEN}" \
@@ -109,11 +109,8 @@ if [[ ${#CF_ACCOUNT_ID} -gt 0 ]] && [[ ${#CF_API_TOKEN} -gt 0 ]] && [[ ${#CF_TUN
echo ${JSON_RESULT} | jq
fi
CF_TUNNEL_ID=$(echo ${JSON_RESULT} | jq -rc ".result.id")
CREDENTIALS_FILE=$(echo ${JSON_RESULT} | jq -rc ".credentials_file")
if [ $CREDENTIALS_FILE = "null" ]; then # when created through POST, credentials_file is part of .results (maybe incomplete json response), check where it is
CREDENTIALS_FILE=$(echo ${JSON_RESULT} | jq -rc ".result.credentials_file")
fi
CF_TUNNEL_ID=$(echo ${JSON_RESULT} | jq -rc ".id // .result.id")
CREDENTIALS_FILE=$(echo ${JSON_RESULT} | jq -rc ".credentials_file // .result.credentials_file")
echo "**** Saving cloudflare tunnel (${CF_TUNNEL_NAME}) credentials json... ****"
if [ ! -d "/etc/cloudflared/" ]; then
mkdir -p "/etc/cloudflared";