diff --git a/Qortal-Setup-Linux.sh b/Qortal-Setup-Linux.sh index 75bf3dc..35e3385 100644 --- a/Qortal-Setup-Linux.sh +++ b/Qortal-Setup-Linux.sh @@ -11,40 +11,35 @@ NC='\033[0m' render_gradient_string() { local input="$1" - local regex='^#([0-9a-fA-F]{6})(.)' + local regex='#([0-9a-fA-F]{6})(.)' - while [[ -n "$input" ]]; do - if [[ "$input" =~ $regex ]]; then - local color="${BASH_REMATCH[1]}" - local char="${BASH_REMATCH[2]}" - local r=$((16#${color:0:2})) - local g=$((16#${color:2:2})) - local b=$((16#${color:4:2})) + while [[ "$input" =~ $regex ]]; do + local hex="${BASH_REMATCH[1]}" + local char="${BASH_REMATCH[2]}" + local r=$((16#${hex:0:2})) + local g=$((16#${hex:2:2})) + local b=$((16#${hex:4:2})) - printf "\e[38;2;%d;%d;%dm%s" "$r" "$g" "$b" "$char" - input="${input:9}" # Skip "#rrggbbX" (7+1=8, +1 for safety) - else - printf "%s" "${input:0:1}" - input="${input:1}" - fi + printf "\e[38;2;%d;%d;%dm%s" "$r" "$g" "$b" "$char" + + input="${input#"#${hex}${char}"}" done echo -e "\e[0m" } + rainbowize_text() { local text="$1" - local freq=0.15 + local freq=0.2 local i=0 local pi=3.14159265 local output="" clamp() { local val="$1" min="$2" max="$3" - (( val < min )) && echo "$min" && return - (( val > max )) && echo "$max" && return - echo "$val" + if (( val < min )); then echo "$min"; elif (( val > max )); then echo "$max"; else echo "$val"; fi } while IFS= read -r -n1 char || [[ -n "$char" ]]; do @@ -53,17 +48,15 @@ rainbowize_text() { continue fi - r=$(awk -v i=$i -v f=$freq 'BEGIN { printf("%d", 127 * (sin(f*i + 0) + 1)) }') - g=$(awk -v i=$i -v f=$freq 'BEGIN { printf("%d", 127 * (sin(f*i + 2*3.1415/3) + 1)) }') - b=$(awk -v i=$i -v f=$freq 'BEGIN { printf("%d", 127 * (sin(f*i + 4*3.1415/3) + 1)) }') + r=$(awk -v i="$i" -v f="$freq" 'BEGIN { printf("%d", 127 * (sin(f*i + 0) + 1)) }') + g=$(awk -v i="$i" -v f="$freq" 'BEGIN { printf("%d", 127 * (sin(f*i + 2*3.1415/3) + 1)) }') + b=$(awk -v i="$i" -v f="$freq" 'BEGIN { printf("%d", 127 * (sin(f*i + 4*3.1415/3) + 1)) }') - r=$(clamp "$r" 50 230) - g=$(clamp "$g" 50 230) - b=$(clamp "$b" 50 230) - - hex=$(printf '%02x%02x%02x' "$r" "$g" "$b") - output+="#${hex}${char}" + r=$(clamp "$r" 60 200) + g=$(clamp "$g" 60 200) + b=$(clamp "$b" 60 200) + output+="#$(printf "%02x%02x%02x" "$r" "$g" "$b")$char" ((i++)) done <<< "$text" @@ -71,6 +64,7 @@ rainbowize_text() { } + # rainbowize_text() { # local text="$1" # local freq=0.15