#!/bin/sh
#
# A non-bash version of
#
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
#
# Original author:
# https://lobste.rs/s/uyw4pq/lobsters_battlestations_screenshots#c_5qrnht

text=${1:-gYw}
textwidth=$((${#text} < 3 ? 3 : ${#text}))

printtable () {
	printf '\n%8s' ' '
	for bg in $(bgs); do
		printcol '' $bg ''
	done
	printf '\n'
	for fg in $(fgs); do
		printrow $fg
		printrow 1\;$fg
	done
	printf '\n'
}

printcol () {
	printf "%s  %${textwidth}s  %s " "${@}"
}

printrow () {
	printf '%6s  ' "${1}"
	for bg in $(bgs); do
		printf "\033[%s\033[%s  %${textwidth}s  \033[0m " "${1}" $bg "${text}"
	done
	printf '\n'
}

bgs () {
	(printf 49\\n; seq 40 47) | sed s/$/m/
}

fgs () {
	(printf 39\\n; seq 30 37) | sed s/$/m/
}

printtable