aboutsummaryrefslogtreecommitdiff
path: root/.local/bin/scripts/colors.sh
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-02-10 11:32:00 +0200
committersrdusr <trevorgray@srdusr.com>2023-02-10 11:32:00 +0200
commit009cd3c349ada787d5828d69655c7cd78707ae40 (patch)
tree26e18ca2fe7c6b427eb6ff7f1ad92658f1b9aaf4 /.local/bin/scripts/colors.sh
parent588984c769470ff070dc89a15fb6c63f1bc74562 (diff)
parent4b073028c17697e2254464e2b54678d07489c14e (diff)
downloaddotfiles-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.sh78
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