diff options
| author | srdusr <trevorgray@srdusr.com> | 2023-02-10 11:32:00 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2023-02-10 11:32:00 +0200 |
| commit | 009cd3c349ada787d5828d69655c7cd78707ae40 (patch) | |
| tree | 26e18ca2fe7c6b427eb6ff7f1ad92658f1b9aaf4 /.local/bin/scripts/colors.sh | |
| parent | 588984c769470ff070dc89a15fb6c63f1bc74562 (diff) | |
| parent | 4b073028c17697e2254464e2b54678d07489c14e (diff) | |
| download | dotfiles-009cd3c349ada787d5828d69655c7cd78707ae40.tar.gz dotfiles-009cd3c349ada787d5828d69655c7cd78707ae40.zip | |
Add '.local/bin/scripts/' from commit '972ed253fa17ffc0db8dfde82c0662acaed17d48'
git-subtree-dir: .local/bin/scripts
git-subtree-mainline: 4d3d5a0f39a5e504f1296cb401e2dffc62292572
git-subtree-split: 972ed253fa17ffc0db8dfde82c0662acaed17d48
Diffstat (limited to '.local/bin/scripts/colors.sh')
| -rwxr-xr-x | .local/bin/scripts/colors.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/.local/bin/scripts/colors.sh b/.local/bin/scripts/colors.sh new file mode 100755 index 0000000..fc1c10c --- /dev/null +++ b/.local/bin/scripts/colors.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +colors=$@ +for (( n=0; n < $colors; n++ )) do + printf " [%d] $(tput setaf $n)%s$(tput sgr0)" $n "Hello World! +" +done +PADDING='Padding' + +main() { + local xterm_start=0 \ + xterm_width=8 \ + xterm_height=2 + + local cube_start=$((xterm_start + xterm_width * xterm_height)) \ + cube_width=6 \ + cube_height=$((6 * 6)) + + local greys_start=$((cube_start + cube_width * cube_height)) \ + greys_width=8 \ + greys_height=3 + + color_block $xterm_start $xterm_width $xterm_height + color_block $cube_start $cube_width $cube_height use_padding + color_block $greys_start $greys_width $greys_height + echo +} + +color_block() { + local start=$1 width=$2 height=$3 use_padding=$4 + local max s color_nums colors + + max=$((start + width * height - 1)) + + echo + for s in $(seq $start $width $max); do + color_nums=$(seq $s $((s + width - 1))) + colors="${use_padding:+$PADDING }${color_nums}${use_padding:+ $PADDING}" + + printf '%s%s %s%s\n' \ + "$(fg_bars $colors)" $ansi_reset \ + "$(bg_bars $colors)" $ansi_reset + done +} + +fg_bars() { + for color in $@; do + color_bar ansi_fg $color '' + done +} + +bg_bars() { + for color in $@; do + color_bar ansi_bg $color ' ' + done +} + +color_bar() { + local ansi=$1 color=$2 trail=$3 + + if [ "$color" == $PADDING ]; then + printf '%s %s' $ansi_reset "$trail" + else + local color_seq=$($ansi $color) + printf '%s %03d%s' $color_seq $color "$trail" + fi +} + +ansi_reset=$'\033[0m' + +ansi_fg() { + printf '\033[38;5;%dm' $1 +} + +ansi_bg() { + printf '\033[48;5;%dm' $1 +} + +main |
