#!/bin/bash
+# Author: Mike Frysinger <vapier@gmail.com>; released into the public domain; suck it.
-if [[ $1 == "--env" ]] ; then
- colors=(
+show_env() {
+ local c colors=(
GOOD="\$'\e[32;01m'"
WARN="\$'\e[33;01m'"
BAD="\$'\e[31;01m'"
[[ -t 0 ]] || c="${c%=*}="
echo "${c}"
done
+}
- exit 0
-fi
+check256() {
+ if [[ ${TERM} != *-256color ]] ; then
+ (
+ echo "warning: TERM (${TERM}) does not end in '-256color';"
+ echo "warning: trying to use 256 colors might not work."
+ ) >&2
+ fi
+}
showit() {
echo -e '\e['"${1};${2}mthis color is: \\\\e[${1};${2}m \e[0m"
}
-case $1 in
-""|16|system)
- for i in {0..1} ; do
- for j in {30..37} ; do
- showit ${i} ${j}
+
+main() {
+ case $1 in
+ --env)
+ show_env
+ ;;
+ ""|16|system)
+ for i in {0..1} ; do
+ for j in {30..37} ; do
+ showit ${i} ${j}
+ done
done
- done
- ;;
-cube|6x6x6)
- for n in {16..231} ; do
- showit "38;05" $(printf '%03i' ${n})
- done
- ;;
-gr[ae]y)
- for n in {232..255} ; do
- showit "38;05" ${n}
- done
- ;;
-all|256)
- for x in system cube gray ; do
- echo "### SET: ${x}"
- "$0" ${x}
- done
- ;;
-esac
+ ;;
+ cube|6x6x6)
+ check256
+ for n in {16..231} ; do
+ showit "38;05" $(printf '%03i' ${n})
+ done
+ ;;
+ gr[ae]y)
+ check256
+ for n in {232..255} ; do
+ showit "38;05" ${n}
+ done
+ ;;
+ all|256)
+ for x in system cube gray ; do
+ echo "### SET: ${x}"
+ "$0" ${x}
+ done
+ ;;
+ *)
+ cat <<-EOF
+ usage: $0 [colors]
+
+ Colors:
+ - --env - show env you can eval in a shell
+ - 16, system - show basic colors (default)
+ - cube, 6x6x6 - show most extended colors
+ - gray - show gray scale
+ - all, 256 - show all colors
+ EOF
+ exit 1
+ ;;
+ esac
+}
+main "$@"