#!/bin/bash
case $1 in
- 1)
- set -e
- mainFunction () {
- echo
- printColors
- printGuidelines
- }
-
-
- printColor () {
- local color="${1}"
-
- printf "\033[1;4%sm " "${color}"
- printf "\033[0m "
- printf "\033[1;3%smSampleText " "${color}"
- printf "\033[0;3%smSampleText " "${color}"
- printf "\033[0m\n"
- }
-
-
- printColors () {
- local color
- # 0 black
- # 1 red
- # 2 green
- # 3 yellow
- # 4 blue
- # 5 magenta / orange
- # 6 cyan / purple
- # 7 white
-
- for color in 0 7; do
- printColor "${color}"
- done
- echo
-
- for color in 4 5 6; do
- printColor "${color}"
- done
- echo
-
- for color in 2 3 1; do
- printColor "${color}"
- done
- echo
- }
-
-
- printGuidelines () {
- echo "A good palette has:"
- echo "- All colors easy to read."
- echo "- Similar eye catchiness within the same group, except for monochromes."
- echo "- Similar or greater eye catchiness in upper groups, including this text."
- echo "- Similar color within the same line."
- echo "- The first group as: blue purple cyan."
- echo "- The last group as: green yellow red."
- echo
- }
-
-
- mainFunction;;
-
+ "--help")
+ echo "Enter a number [1-4] to specify, which demo to run.";;
2)
echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
- echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY";;
+ echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"
+ ;;
3)
# Description:
#
done
echo
- echo;;
+ echo
+ ;;
4)
for colour in {1..225}
do echo -en "\033[38;5;${colour}m38;5;${colour} \n"
- done | column -x;;
+ done | column -x
+ ;;
+ 5)
+ theme=$(dirname $0)/scripts/${1:-base16-default-dark.sh}
+ if [ -f $theme ]; then
+ # get the color declarations in said theme, assumes there is a block of text that starts with color00= and ends with new line
+ source $theme
+ eval $(awk '/^color00=/,/^$/ {print}' $theme | sed 's/#.*//')
+ else
+ printf "No theme file %s found\n" $theme
+ fi;
+ ansi_mappings=(
+ Black
+ Red
+ Green
+ Yellow
+ Blue
+ Magenta
+ Cyan
+ White
+ Bright_Black
+ Bright_Red
+ Bright_Green
+ Bright_Yellow
+ Bright_Blue
+ Bright_Magenta
+ Bright_Cyan
+ Bright_White
+ )
+ colors=(
+ base00
+ base08
+ base0B
+ base0A
+ base0D
+ base0E
+ base0C
+ base05
+ base03
+ base08
+ base0B
+ base0A
+ base0D
+ base0E
+ base0C
+ base07
+ base09
+ base0F
+ base01
+ base02
+ base04
+ base06
+ )
+ for padded_value in `seq -w 0 21`; do
+ color_variable="color${padded_value}"
+ eval current_color=\$${color_variable}
+ current_color=$(echo ${current_color//\//} | tr '[:lower:]' '[:upper:]') # get rid of slashes, and uppercase
+ non_padded_value=$((10#$padded_value))
+ base16_color_name=${colors[$non_padded_value]}
+ current_color_label=${current_color:-unknown}
+ ansi_label=${ansi_mappings[$non_padded_value]}
+ block=$(printf "\x1b[48;5;${non_padded_value}m___________________________")
+ foreground=$(printf "\x1b[38;5;${non_padded_value}m$color_variable")
+ printf "%s %s %s %-30s %s\x1b[0m\n" $foreground $base16_color_name $current_color_label ${ansi_label:-""} $block
+ done;
+ if [ $# -eq 1 ]; then
+ printf "To restore current theme, source ~/.base16_theme or reopen your terminal\n"
+ fi
+ ;;
*)
- colors 1
- echo "Enter a number [1-4] to specify, which demo to run.";;
+ set -e
+ mainFunction () {
+ echo
+ printColors
+ printGuidelines
+ }
+
+
+ printColor () {
+ local color="${1}"
+
+ printf "\033[1;4%sm " "${color}"
+ printf "\033[0m "
+ printf "\033[1;3%smSampleText " "${color}"
+ printf "\033[0;3%smSampleText " "${color}"
+ printf "\033[0m\n"
+ }
+
+
+ printColors () {
+ local color
+ # 0 black
+ # 1 red
+ # 2 green
+ # 3 yellow
+ # 4 blue
+ # 5 magenta / orange
+ # 6 cyan / purple
+ # 7 white
+
+ for color in 0 7; do
+ printColor "${color}"
+ done
+ echo
+
+ for color in 4 5 6; do
+ printColor "${color}"
+ done
+ echo
+
+ for color in 2 3 1; do
+ printColor "${color}"
+ done
+ echo
+ }
+
+
+ printGuidelines () {
+ echo "A good palette has:"
+ echo "- All colors easy to read."
+ echo "- Similar eye catchiness within the same group, except for monochromes."
+ echo "- Similar or greater eye catchiness in upper groups, including this text."
+ echo "- Similar color within the same line."
+ echo "- The first group as: blue purple cyan."
+ echo "- The last group as: green yellow red."
+ }
+
+ mainFunction
+ ;;
esac