Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 21 additions & 14 deletions installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -79,30 +79,37 @@ mkdir -p "$BASE_DIR"

# Function to display a spinner with support for nested tasks
show_spinner() {
local pid=$1
local text=$2
local level=${3:-0} # Default level is 0 if not provided
local spinstr='/-\|'
local pid="$1"
local text="$2"
local level="${3:-0}" # Default level is 0 if not provided
local delay=0.1
local indent=$(printf "%*s" $((level * 2)) "") # Indentation based on level
local indent

while kill -0 $pid 2>/dev/null; do
for char in $spinstr; do
printf "\r%s%s %c" "$indent" "$text" "$char"
sleep $delay
indent=$(printf "%*s" $((level * 2)) "") # Indentation based on level

(
while :; do
for char in "/" "-" "\\" "|"; do
printf "\r%s%s %s" "$indent" "$text" "$char"
sleep "$delay"
done
done
done
) &
local spinner_pid="$!"

wait "$pid"
local result="$?"

wait $pid
local result=$?
kill "$spinner_pid" 2>/dev/null || true
wait "$spinner_pid" 2>/dev/null || true

if [ $result -eq 0 ]; then
if [ "$result" -eq 0 ]; then
printf "\r%s%s \033[32m✓\033[0m\n" "$indent" "$text"
else
printf "\r%s%s \033[31m✗\033[0m\n" "$indent" "$text"
fi

return $result
return "$result"
}

# Disable additional notifications
Expand Down