101 lines
3.0 KiB
Bash
Executable File
101 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Konfiguration
|
|
USERNAME="vollstock"
|
|
PASSWORD="bBm1AxSkE-tiw-_LXRicPQ"
|
|
TIMEOUT=10
|
|
|
|
# Farben für die Ausgabe
|
|
BLACK=$(tput setaf 0)
|
|
RED=$(tput setaf 1)
|
|
GREEN=$(tput setaf 2)
|
|
YELLOW=$(tput setaf 3)
|
|
LIME_YELLOW=$(tput setaf 190)
|
|
POWDER_BLUE=$(tput setaf 153)
|
|
BLUE=$(tput setaf 4)
|
|
MAGENTA=$(tput setaf 5)
|
|
CYAN=$(tput setaf 6)
|
|
WHITE=$(tput setaf 7)
|
|
GRAY=$(tput setaf 240)
|
|
BRIGHT=$(tput bold)
|
|
NORMAL=$(tput sgr0)
|
|
BLINK=$(tput blink)
|
|
REVERSE=$(tput smso)
|
|
UNDERLINE=$(tput smul)
|
|
|
|
|
|
# Funktion zum Formatieren der Ausgabe
|
|
format_output() {
|
|
local label=$1
|
|
local result=$2
|
|
local success=$3
|
|
local output=$4
|
|
local max_width=72
|
|
|
|
# Kürze das Label, falls es zu lang ist
|
|
if [ ${#label} -gt $((max_width - 20)) ]; then
|
|
label="${label:0:$((max_width - 20))}"
|
|
fi
|
|
|
|
# Berechne die Anzahl der Punkte, die zwischen Label und Ergebnis eingefügt werden sollen
|
|
dots_count=$((max_width - ${#label} - ${#result} - 4)) # 4 für die Klammern und Leerzeichen
|
|
|
|
# Erstelle die Punkte-Zeichenkette
|
|
dots=$(printf '%*s' "$dots_count" | tr ' ' '.')
|
|
|
|
# Bestimme die Farbe für das Ergebnis
|
|
if [ "$success" = true ]; then
|
|
result_color=$GREEN
|
|
elif [ "$success" = false ]; then
|
|
result_color=$RED
|
|
else
|
|
result_color=$YELLOW
|
|
fi
|
|
|
|
# Ausgabe formatieren
|
|
printf "%s%s%s %s%s%s [%s%s%s]\n\n" "$MAGENTA" "$label" "$NORMAL" "$GRAY" "$dots" "$NORMAL" "$result_color" "$result" "$NORMAL"
|
|
printf "%s\n\n" "$output"
|
|
}
|
|
|
|
# Funktion zum Ausführen des Curl-Befehls und Formatieren der Ausgabe
|
|
run_test() {
|
|
label=$1
|
|
url=$2
|
|
method=$3
|
|
depth=$4
|
|
local curl_output
|
|
|
|
curl_output=$(curl -s -w "\nHTTP Status: %{http_code}" \
|
|
--max-time "$TIMEOUT" \
|
|
-u "$USERNAME:$PASSWORD" \
|
|
-H "Depth: $depth; Content-Type: application/xml" \
|
|
-X $method \
|
|
"$url")
|
|
|
|
status_code=$(echo "$curl_output" | tail -n 1 | awk '{print $3}')
|
|
|
|
if [ "$status_code" -gt 400 ]; then
|
|
success=false
|
|
else
|
|
success=true
|
|
fi
|
|
|
|
# Ausgabe formatieren
|
|
format_output "$label" "$status_code" "$success" "$curl_output"
|
|
|
|
}
|
|
|
|
# Hauptfunktion
|
|
main() {
|
|
echo ''
|
|
# | label | url | method | depth
|
|
# |--------------|---------------------------------------------------------------------------------------------------|-------------| --------
|
|
run_test "Base URL" "https://cloud.tooloop.de/remote.php/dav/" "GET" 0
|
|
run_test "Principal" "https://cloud.tooloop.de/remote.php/dav/principals/users/vollstock" "PROPFIND" 1
|
|
run_test "Calendars" "https://cloud.tooloop.de/remote.php/dav/calendars/vollstock" "PROPFIND" 1
|
|
run_test "Calendar Info" "https://cloud.tooloop.de/remote.php/dav/calendars/vollstock/migrated-6E79619D-F037-413E-9FC2-46EA716E5CB3" "PROPFIND" 1
|
|
echo ''
|
|
}
|
|
|
|
# Skript ausführen
|
|
main |