Projet

Général

Profil

Révision a7d44887

IDa7d44887e4ab2cf3d96cff4a4a27d8340d72e291
Parent 195a733d
Enfant 12cb1134

Ajouté par Olivier Mehani il y a environ 5 ans

[nextcloud_] Use fewer requests to work out the protocol to use

Signed-off-by: Olivier Mehani <>

Voir les différences:

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