diff --git a/misc/alpine-install.func b/misc/alpine-install.func index 39e76d8f..83b842f3 100644 --- a/misc/alpine-install.func +++ b/misc/alpine-install.func @@ -34,6 +34,8 @@ catch_errors() { } error_handler() { + if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID; fi + printf "\e[?25h" local exit_code="$?" local line_number="$1" local command="$2" @@ -41,17 +43,37 @@ error_handler() { echo -e "\n$error_message\n" } +# This function displays a spinner. +spinner() { + printf "\e[?25l" + spinner="/-\\|/-\\|" + spin_i=0 + while true; do + printf "\b%s" "${spinner:spin_i++%${#spinner}:1}" + sleep 0.1 + done +} + +# This function displays an informational message with a yellow color. msg_info() { local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." + echo -ne " ${HOLD} ${YW}${msg} " + spinner & + SPINNER_PID=$! } +# This function displays a success message with a green color. msg_ok() { + if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID; fi + printf "\e[?25h" local msg="$1" echo -e "${BFR} ${CM} ${GN}${msg}${CL}" } +# This function displays a error message with a red color. msg_error() { + if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID; fi + printf "\e[?25h" local msg="$1" echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" }