-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rainbow
executable file
·57 lines (51 loc) · 1.51 KB
/
rainbow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash
#
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
#
T='gYw' # The test text
16color() {
echo -e "\\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs \\033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS \\033[$FG\\033[$BG $T \\033[0m";
done
echo;
done
echo
}
256color() {
for i in {0..255} ; do
printf "\\x1b[38;5;${i}m%3d " "${i}"
if (( "$i" == 15 )) || (( "$i" > 15 )) && (( ("$i"-15) % 12 == 0 )); then
echo;
fi
done
}
truecolor() {
set -u
awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{
s=" ";
for (colnum = 0; colnum<term_cols; colnum++) {
r = 255-(colnum*255/term_cols);
g = (colnum*510/term_cols);
b = (colnum*255/term_cols);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum%2+1,1);
}
printf "\n";
}'
set +u
}
truecolor