Révision a7d44887
[nextcloud_] Use fewer requests to work out the protocol to use
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
| plugins/nextcloud/nextcloud_ | ||
|---|---|---|
| 74 | 74 |
done |
| 75 | 75 |
} |
| 76 | 76 |
|
| 77 |
test_https() {
|
|
| 78 |
[ -z "$DOMAIN" ] && exit 0 |
|
| 79 |
curl -s -f -m "${TIMEOUT}" -I "https://$DOMAIN" > /dev/null && echo true && exit 0
|
|
| 77 |
fetch_url () {
|
|
| 78 |
curl -s -f -m "${TIMEOUT}" "$@"
|
|
| 80 | 79 |
} |
| 81 | 80 |
|
| 82 | 81 |
case $1 in |
| 83 | 82 |
|
| 84 | 83 |
autoconf) |
| 85 |
if [ -x /usr/bin/curl ]; then |
|
| 86 |
if [ -x /usr/bin/jq ]; then |
|
| 87 |
[ "$(test_https)" ] && DOMAIN="https://$DOMAIN" || DOMAIN="http://$DOMAIN" |
|
| 88 |
curl -s -f -m "${TIMEOUT}" -u "$USERNAME:$PASSWORD" -I "$DOMAIN$API_PATH" | grep -iq "Content-Type: application/json" && echo "yes" && exit 0 || echo "no (invalid or empty response from nextlcoud serverinfo api)" && exit 0
|
|
| 84 |
if [ -x "$(command -v curl)" ]; then |
|
| 85 |
if [ -x "$(command -v jq)" ]; then |
|
| 86 |
(fetch_url -I -u "$USERNAME:$PASSWORD" -I "https://${DOMAIN}${API_PATH}" \
|
|
| 87 |
| grep -iq "Content-Type: application/json" \ |
|
| 88 |
|| fetch_url -I -u "$USERNAME:$PASSWORD" -I "http://${DOMAIN}${API_PATH}" \
|
|
| 89 |
| grep -iq "Content-Type: application/json") \ |
|
| 90 |
&& echo "yes" && exit 0 \ |
|
| 91 |
|| echo "no (invalid or empty response from nextlcoud serverinfo api)" && exit 0 |
|
| 89 | 92 |
else |
| 90 | 93 |
echo "no (jq not found)" && exit 0 |
| 91 | 94 |
fi |
| 92 | 95 |
else |
| 93 |
echo "no (/usr/bin/curl not found)" && exit 0
|
|
| 96 |
echo "no (curl not found)" && exit 0 |
|
| 94 | 97 |
fi |
| 95 | 98 |
;; |
| 96 | 99 |
|
| ... | ... | |
| 210 | 213 |
esac |
| 211 | 214 |
|
| 212 | 215 |
# Get JSON data |
| 213 |
[ "$(test_https)" ] && DOMAIN="https://$DOMAIN" || DOMAIN="http://$DOMAIN" |
|
| 214 |
JSONSTATS=$(curl -s -f -m "${TIMEOUT}" -u "$USERNAME:$PASSWORD" "$DOMAIN$API_PATH" | sed 's/\\/\\\\/g' | jq -cr ".ocs.data")
|
|
| 216 |
JSONSTATS=$( |
|
| 217 |
fetch_url -u "$USERNAME:$PASSWORD" "https://${DOMAIN}${API_PATH}" | sed 's/\\/\\\\/g' | jq -cr ".ocs.data" 2>&1 \
|
|
| 218 |
|| fetch_url -u "$USERNAME:$PASSWORD" "http://${DOMAIN}${API_PATH}" | sed 's/\\/\\\\/g' | jq -cr ".ocs.data"
|
|
| 219 |
) |
|
| 215 | 220 |
USERS=$(echo "$JSONSTATS" | jq -cr ".activeUsers") |
| 216 | 221 |
STORAGE=$(echo "$JSONSTATS" | jq -cr ".nextcloud.storage") |
| 217 | 222 |
SHARES=$(echo "$JSONSTATS" | jq -cr ".nextcloud.shares") |
Formats disponibles : Unified diff