|
|
|
@ -0,0 +1,60 @@ |
|
|
|
# CONSTANTS |
|
|
|
|
|
|
|
# MARGIN=0 |
|
|
|
PADDING=0 |
|
|
|
ANSI_RESET='\e[0m' |
|
|
|
declare -A FG_COLORS |
|
|
|
FG_COLORS["RED"]='\e[31m' |
|
|
|
FG_COLORS["GREEN"]='\e[32m' |
|
|
|
FG_COLORS["YELLOW"]='\e[93m' |
|
|
|
FG_COLORS["BLUE"]='\e[34m' |
|
|
|
FG_COLORS["CYAN"]='\e[36m' |
|
|
|
FG_COLORS["MAGENTA"]='\e[95m' |
|
|
|
FG_COLORS["GRAY"]='\e[90m' |
|
|
|
|
|
|
|
# FUNCTIONS |
|
|
|
|
|
|
|
function ansi_length { |
|
|
|
local clean_text |
|
|
|
clean_text=$(echo "$1" | sed 's/\x1B\[[0-9;]*m//g') |
|
|
|
echo "${#clean_text}" |
|
|
|
} |
|
|
|
|
|
|
|
function style_padding { |
|
|
|
local padding_left=${PADDING_LEFT:-$PADDING} |
|
|
|
local padding_right=${PADDING_RIGHT:-$PADDING} |
|
|
|
|
|
|
|
for _ in $(seq 1 "${padding_left}"); do builtin echo -n ' '; done |
|
|
|
builtin echo -n "$1" |
|
|
|
for _ in $(seq 1 "${padding_right}"); do builtin echo -n ' '; done |
|
|
|
} |
|
|
|
|
|
|
|
function _style_fg { |
|
|
|
[[ -n $1 ]] && echo "${FG_COLORS[$1]}" || true |
|
|
|
} |
|
|
|
|
|
|
|
function style_ansi { |
|
|
|
local fg |
|
|
|
fg=$(_style_fg "${FG:-}") |
|
|
|
# local bg=${BG:-} |
|
|
|
[[ -n $fg ]] && builtin echo -en "$fg" |
|
|
|
builtin echo -en "$1" |
|
|
|
[[ -n $fg ]] && builtin echo -en "$ANSI_RESET" |
|
|
|
} |
|
|
|
|
|
|
|
function style_block { |
|
|
|
local content length |
|
|
|
content=$(style_padding "$1") |
|
|
|
length=$(ansi_length "$content") |
|
|
|
length=$((length + 2)) |
|
|
|
|
|
|
|
builtin echo -n "╔" |
|
|
|
for _ in $(seq 1 "${length}"); do builtin echo -n '═'; done |
|
|
|
builtin echo "╗" |
|
|
|
|
|
|
|
builtin echo "║ $content ║" |
|
|
|
|
|
|
|
builtin echo -n "╚" |
|
|
|
for _ in $(seq 1 "${length}"); do builtin echo -n '═'; done |
|
|
|
builtin echo "╝" |
|
|
|
} |