This commit is contained in:
crowetic 2025-07-15 18:10:05 -07:00
parent 0f8afa2a7f
commit 56ff790179

View File

@ -11,32 +11,36 @@ NC='\033[0m'
print_rainbow_text() { print_rainbow_text() {
local text="$1" local text="$1"
local freq=0.15 local freq=0.1
local pi=3.14159265 local pi=3.14159265
local i=0 local i=0
# Read character-by-character including newlines
while IFS= read -r -n1 char || [ -n "$char" ]; do while IFS= read -r -n1 char || [ -n "$char" ]; do
if [[ "$char" == $'\n' ]]; then if [[ "$char" == $'\n' ]]; then
echo echo
continue continue
fi fi
# Keep control characters uncolored # Skip formatting control characters
if [[ "$char" =~ [[:cntrl:]] ]]; then if [[ "$char" =~ [[:cntrl:]] ]]; then
printf "%s" "$char" printf "%s" "$char"
continue continue
fi fi
# Sine wave-based color cycling, clamped to avoid too dark/light # Generate sinewave-based RGB colors, range-clamped (95200)
r=$(printf "%.0f" "$(echo "s($freq*$i + 0) * 95 + 160" | bc -l)") r=$(printf "%.0f" "$(echo "s($freq * $i + 0) * 52.5 + 127.5" | bc -l)")
g=$(printf "%.0f" "$(echo "s($freq*$i + 2*$pi/3) * 95 + 160" | bc -l)") g=$(printf "%.0f" "$(echo "s($freq * $i + 2 * $pi / 3) * 52.5 + 127.5" | bc -l)")
b=$(printf "%.0f" "$(echo "s($freq*$i + 4*$pi/3) * 95 + 160" | bc -l)") b=$(printf "%.0f" "$(echo "s($freq * $i + 4 * $pi / 3) * 52.5 + 127.5" | bc -l)")
printf "\e[38;2;%d;%d;%dm%s\e[0m" "$r" "$g" "$b" "$char" printf "\033[38;2;%d;%d;%dm%s\033[0m" "$r" "$g" "$b" "$char"
((i++)) ((i++))
done <<< "$text" done <<< "$text"
echo # Final newline
} }
intro_block=' intro_block='
---------------------------------------- ----------------------------------------
-Qortal Universal Linux Install Script - -Qortal Universal Linux Install Script -