Update core.func
This commit is contained in:
parent
293e0757e8
commit
c34347ed22
@ -90,30 +90,27 @@ default_vars() {
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Performs a curl request with retry logic and inline feedback.
|
# Performs a curl request with retry logic and inline feedback.
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
community_curl() {
|
curl_handler() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
shift
|
shift
|
||||||
local max_retries=3
|
local max_retries=3 delay=2 attempt=1 result exit_code
|
||||||
local delay=2
|
|
||||||
local attempt=1
|
|
||||||
local result exit_code
|
|
||||||
|
|
||||||
msg_info "Fetching: $url"
|
msg_info "Fetching: $url"
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
result=$(curl -fsSL --retry 0 "$url" "$@" 2>/dev/null)
|
result=$(curl -fsSL --retry 0 "$url" "$@" 2>&1)
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
|
|
||||||
if [[ $exit_code -eq 0 ]]; then
|
if [[ $exit_code -eq 0 ]]; then
|
||||||
stop_spinner
|
stop_spinner
|
||||||
msg_ok "Fetched: $url"
|
msg_ok "Fetched: $url"
|
||||||
printf '%s' "$result"
|
# Wenn -o verwendet wurde, gibt es keinen stdout-Output
|
||||||
|
[[ "$*" != *"-o "* ]] && printf '%s' "$result"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ((attempt >= max_retries)); then
|
if ((attempt >= max_retries)); then
|
||||||
stop_spinner
|
stop_spinner
|
||||||
__curl_err_handler "$exit_code"
|
__curl_err_handler "$exit_code" "$url"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -128,38 +125,31 @@ community_curl() {
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
__curl_err_handler() {
|
__curl_err_handler() {
|
||||||
local exit_code="$1"
|
local exit_code="$1"
|
||||||
local cmd="${BASH_COMMAND:-unknown}"
|
local target="$2"
|
||||||
|
|
||||||
if ! grep -q 'curl' <<<"$cmd"; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $exit_code in
|
case $exit_code in
|
||||||
1) msg_error "Unsupported protocol in: $cmd" ;;
|
1) msg_error "Unsupported protocol: $target" ;;
|
||||||
2) msg_error "Failed curl initialization in: $cmd" ;;
|
2) msg_error "Curl init failed: $target" ;;
|
||||||
3) msg_error "Malformed URL in: $cmd" ;;
|
3) msg_error "Malformed URL: $target" ;;
|
||||||
5) msg_error "Could not resolve proxy in: $cmd" ;;
|
5) msg_error "Proxy resolution failed: $target" ;;
|
||||||
6) msg_error "Could not resolve host in: $cmd" ;;
|
6) msg_error "Host resolution failed: $target" ;;
|
||||||
7) msg_error "Failed to connect to host in: $cmd" ;;
|
7) msg_error "Connection failed: $target" ;;
|
||||||
9) msg_error "Access denied to remote resource in: $cmd" ;;
|
9) msg_error "Access denied: $target" ;;
|
||||||
18) msg_error "Partial file transfer detected in: $cmd" ;;
|
18) msg_error "Partial file transfer: $target" ;;
|
||||||
22) msg_error "HTTP error response (e.g. 400/404) in: $cmd" ;;
|
22) msg_error "HTTP error (e.g. 404): $target" ;;
|
||||||
23) msg_error "Write error during transfer in: $cmd" ;;
|
23) msg_error "Write error on local system: $target" ;;
|
||||||
26) msg_error "Read error from local file in: $cmd" ;;
|
26) msg_error "Read error from local file: $target" ;;
|
||||||
28) msg_error "Operation timed out in: $cmd" ;;
|
28) msg_error "Timeout: $target" ;;
|
||||||
35) msg_error "SSL connect error in: $cmd" ;;
|
35) msg_error "SSL connect error: $target" ;;
|
||||||
47) msg_error "Too many redirects in: $cmd" ;;
|
47) msg_error "Too many redirects: $target" ;;
|
||||||
51) msg_error "SSL certificate verification failed in: $cmd" ;;
|
51) msg_error "SSL cert verify failed: $target" ;;
|
||||||
52) msg_error "Empty response from server in: $cmd" ;;
|
52) msg_error "Empty server response: $target" ;;
|
||||||
55) msg_error "Send error during transfer in: $cmd" ;;
|
55) msg_error "Send error: $target" ;;
|
||||||
56) msg_error "Receive error during transfer in: $cmd" ;;
|
56) msg_error "Receive error: $target" ;;
|
||||||
60) msg_error "SSL CA certificate not trusted in: $cmd" ;;
|
60) msg_error "SSL CA not trusted: $target" ;;
|
||||||
67) msg_error "Login denied by server in: $cmd" ;;
|
67) msg_error "Login denied by server: $target" ;;
|
||||||
78) msg_error "Remote file not found (404) in: $cmd" ;;
|
78) msg_error "Remote file not found (404): $target" ;;
|
||||||
*) msg_error "Curl failed with code $exit_code (in: $cmd)" ;;
|
*) msg_error "Curl failed with code $exit_code: $target" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user