Functionalized color mangement
This commit is contained in:
parent
e6d6262857
commit
79bfb447ea
3 changed files with 120 additions and 1 deletions
106
lib/color.sh
Normal file
106
lib/color.sh
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# doc color {
|
||||||
|
#
|
||||||
|
# NAME
|
||||||
|
# color
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Sets color variables for easy color change
|
||||||
|
#
|
||||||
|
# USAGE
|
||||||
|
# _color <command> [<color>]
|
||||||
|
#
|
||||||
|
# COMMAND
|
||||||
|
# fg
|
||||||
|
# Sets foreground to defined color
|
||||||
|
#
|
||||||
|
# bfg
|
||||||
|
# Set foreground to bold and defined color
|
||||||
|
#
|
||||||
|
# bg
|
||||||
|
# Sets background to defined color
|
||||||
|
#
|
||||||
|
# rs
|
||||||
|
# Resets text to terminal default
|
||||||
|
#
|
||||||
|
# COLOR
|
||||||
|
# blk
|
||||||
|
# Color black
|
||||||
|
#
|
||||||
|
# red
|
||||||
|
# Color red
|
||||||
|
#
|
||||||
|
# grn
|
||||||
|
# Color green
|
||||||
|
#
|
||||||
|
# yel
|
||||||
|
# Color yellow
|
||||||
|
#
|
||||||
|
# blu
|
||||||
|
# Color blue
|
||||||
|
#
|
||||||
|
# mag
|
||||||
|
# Color magenta
|
||||||
|
#
|
||||||
|
# cyn
|
||||||
|
# Color cyan
|
||||||
|
#
|
||||||
|
# gry
|
||||||
|
# Color grey
|
||||||
|
# }
|
||||||
|
|
||||||
|
cmdoptArray=(fg bfg bg rs)
|
||||||
|
coloptArray=(blk red grn yel blu mag cyn gry)
|
||||||
|
|
||||||
|
_color_to_ansi() {
|
||||||
|
COL=${1}
|
||||||
|
for no in {0..7}; do
|
||||||
|
if [ "${COL}" == "${coloptArray[${no}]}" ]; then
|
||||||
|
echo $(( ${no} + 30 ))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
_color() {
|
||||||
|
CMD=${1}
|
||||||
|
COL=${2}
|
||||||
|
|
||||||
|
# Sanity check for COMMAND argument
|
||||||
|
for cmdopt in ${cmdoptArray[@]}; do
|
||||||
|
if [ "${cmdopt}" == "${CMD}" ]; then
|
||||||
|
CMD_EXIST=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if ! ${CMD_EXIST}; then
|
||||||
|
_msg ECHO "_color(): ${CMD} not a command"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sanity check for COLOR argument
|
||||||
|
for colopt in ${coloptArray[@]}; do
|
||||||
|
if [ "${colopt}" == "${COL}" ]; then
|
||||||
|
OPT_EXIT=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if ! ${OPT_EXIT}; then
|
||||||
|
_msg ECHO "_color(): ${COL} not a color"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Converts color to associated ANSI value
|
||||||
|
ANSI="$(_color_to_ansi ${COL})"
|
||||||
|
|
||||||
|
case ${CMD} in
|
||||||
|
bfg)
|
||||||
|
BOLD="1;"
|
||||||
|
;;
|
||||||
|
|
||||||
|
bg)
|
||||||
|
ANSI=$(( ${ANSI} + 10 ))
|
||||||
|
;;
|
||||||
|
|
||||||
|
rs)
|
||||||
|
ANSI=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo -e "\033[${BOLD}${ANSI}m"
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
STDERR=$(mktemp /tmp/STDERR.XXXXXXXXXX)
|
STDERR=$(mktemp /tmp/STDERR.XXXXXXXXXX)
|
||||||
|
|
||||||
function log {
|
_msg(){
|
||||||
if [ ${1} = "INDENT" ]; then
|
if [ ${1} = "INDENT" ]; then
|
||||||
if [ -z "${1}" ]; then
|
if [ -z "${1}" ]; then
|
||||||
INDENT="0"
|
INDENT="0"
|
13
test/test-color.sh
Normal file
13
test/test-color.sh
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ../lib/msg.sh
|
||||||
|
source ../lib/color.sh
|
||||||
|
|
||||||
|
_msg ECHO "Begin color.sh test"
|
||||||
|
for cmd in fg bfg bg; do
|
||||||
|
for col in ${coloptArray[@]}; do
|
||||||
|
echo "Testing _color $(_color ${cmd} ${col})${cmd} ${col}$(_color rs)"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
_msg ECHO "End color.sh test"
|
||||||
|
|
Reference in a new issue