From a7ef32b29dc8dd3d5651857ff0661ded889b036f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 8 May 2025 14:06:17 +0200 Subject: [PATCH] fixxess --- misc/core.func | 30 +++++++++++++++++------------- misc/vm-core.func | 15 ++++++++++----- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/misc/core.func b/misc/core.func index cc1bf20..59ab3e4 100644 --- a/misc/core.func +++ b/misc/core.func @@ -124,9 +124,14 @@ run_curl() { curl_handler() { local args=() local url="" - local max_retries=0 delay=2 attempt=1 - local exit_code has_output_file=false + local max_retries=3 # Setting a default value + local delay=2 + local attempt=1 + local exit_code + local has_output_file=false + local result="" + # Parse arguments for arg in "$@"; do if [[ "$arg" != -* && -z "$url" ]]; then url="$arg" @@ -136,40 +141,39 @@ curl_handler() { done if [[ -z "$url" ]]; then - msg_error "no valid url or option entered for curl_handler" - exit 1 + msg_error "No valid URL or option entered for curl_handler" + return 1 fi - $STD msg_info "Fetching: $url" + msg_info "Fetching: $url" - while :; do + while [[ $attempt -le $max_retries ]]; do if $has_output_file; then - $STD run_curl "${args[@]}" + run_curl "${args[@]}" exit_code=$? else - $STD result=$(run_curl "${args[@]}") + result=$(run_curl "${args[@]}") exit_code=$? fi if [[ $exit_code -eq 0 ]]; then - stop_spinner msg_ok "Fetched: $url" $has_output_file || printf '%s' "$result" return 0 fi if ((attempt >= max_retries)); then - stop_spinner + # Read error log if it exists if [ -s /tmp/curl_error.log ]; then local curl_stderr curl_stderr=$(&2 + printf "\r\033[K${INFO}${YW}Retry $attempt/$max_retries in ${delay}s...${CL}" >&2 sleep "$delay" ((attempt++)) done diff --git a/misc/vm-core.func b/misc/vm-core.func index 1377cb9..6ee43bb 100644 --- a/misc/vm-core.func +++ b/misc/vm-core.func @@ -334,16 +334,21 @@ get_valid_nextid() { } cleanup_vmid() { - if qm status $VMID &>/dev/null; then - qm stop $VMID &>/dev/null - qm destroy $VMID &>/dev/null + if [[ -z "${VMID:-}" ]]; then + return + fi + if qm status "$VMID" &>/dev/null; then + qm stop "$VMID" &>/dev/null + qm destroy "$VMID" &>/dev/null fi } cleanup() { - popd >/dev/null + if [[ "$(dirs -p | wc -l)" -gt 1 ]]; then + popd >/dev/null || true + fi post_update_to_api "done" "none" - rm -rf $TEMP_DIR + [[ -n "${TEMP_DIR:-}" && -d "$TEMP_DIR" ]] && rm -rf "$TEMP_DIR" } check_root() {