diff --git a/misc/api.func b/misc/api.func index ae4d90b..005fe36 100644 --- a/misc/api.func +++ b/misc/api.func @@ -43,6 +43,57 @@ EOF -d "$JSON_PAYLOAD") || true } +get_error_description() { + local exit_code="$1" + case "$exit_code" in + 1) echo "General error: An unspecified error occurred." ;; + 2) echo "Incorrect shell usage or invalid command arguments." ;; + 3) echo "Unexecuted function or invalid shell condition." ;; + 4) echo "Error opening a file or invalid path." ;; + 5) echo "I/O error: An input/output failure occurred." ;; + 6) echo "No such device or address." ;; + 7) echo "Insufficient memory or resource exhaustion." ;; + 8) echo "Non-executable file or invalid file format." ;; + 9) echo "Failed child process execution." ;; + 18) echo "Connection to a remote server failed." ;; + 22) echo "Invalid argument or faulty network connection." ;; + 28) echo "No space left on device." ;; + 35) echo "Timeout while establishing a connection." ;; + 56) echo "Faulty TLS connection." ;; + 60) echo "SSL certificate error." ;; + 100) echo "LXC install error: Unexpected error in create_lxc.sh." ;; + 101) echo "LXC install error: No network connection detected." ;; + 200) echo "LXC creation failed." ;; + 201) echo "LXC error: Invalid Storage class." ;; + 202) echo "User aborted menu in create_lxc.sh." ;; + 203) echo "CTID not set in create_lxc.sh." ;; + 204) echo "PCT_OSTYPE not set in create_lxc.sh." ;; + 205) echo "CTID cannot be less than 100 in create_lxc.sh." ;; + 206) echo "CTID already in use in create_lxc.sh." ;; + 207) echo "Template not found in create_lxc.sh." ;; + 208) echo "Error downloading template in create_lxc.sh." ;; + 209) echo "Container creation failed, but template is intact in create_lxc.sh." ;; + 125) echo "Docker error: Container could not start." ;; + 126) echo "Command not executable: Incorrect permissions or missing dependencies." ;; + 127) echo "Command not found: Incorrect path or missing dependency." ;; + 128) echo "Invalid exit signal, e.g., incorrect Git command." ;; + 129) echo "Signal 1 (SIGHUP): Process terminated due to hangup." ;; + 130) echo "Signal 2 (SIGINT): Manual termination via Ctrl+C." ;; + 132) echo "Signal 4 (SIGILL): Illegal machine instruction." ;; + 133) echo "Signal 5 (SIGTRAP): Debugging error or invalid breakpoint signal." ;; + 134) echo "Signal 6 (SIGABRT): Program aborted itself." ;; + 135) echo "Signal 7 (SIGBUS): Memory error, invalid memory address." ;; + 137) echo "Signal 9 (SIGKILL): Process forcibly terminated (OOM-killer or 'kill -9')." ;; + 139) echo "Signal 11 (SIGSEGV): Segmentation fault, possibly due to invalid pointer access." ;; + 141) echo "Signal 13 (SIGPIPE): Pipe closed unexpectedly." ;; + 143) echo "Signal 15 (SIGTERM): Process terminated normally." ;; + 152) echo "Signal 24 (SIGXCPU): CPU time limit exceeded." ;; + 255) echo "Unknown critical error, often due to missing permissions or broken scripts." ;; + *) echo "Unknown error code ($exit_code)." ;; + esac +} + + post_to_api_vm() { if [[ ! -f /usr/local/community-scripts/diagnostics ]]; then @@ -91,8 +142,8 @@ EOF } POST_UPDATE_DONE=false -post_update_to_api() { +post_update_to_api() { if ! command -v curl &> /dev/null; then return fi @@ -100,21 +151,25 @@ post_update_to_api() { if [ "$POST_UPDATE_DONE" = true ]; then return 0 fi - local API_URL="http://api.community-scripts.org/dev/upload/updatestatus" + local status="${1:-failed}" - local error="${2:-No error message}" + local exit_code="${2:-0}" + local error_description="$(get_error_description "$exit_code")" + + local API_URL="http://api.community-scripts.org/dev/upload/updatestatus" JSON_PAYLOAD=$(cat <