refactored boxborder functions for optimized prints
This commit is contained in:
parent
64764f8d40
commit
d9ad8811b4
1 changed files with 90 additions and 50 deletions
140
functions
140
functions
|
|
@ -3,8 +3,6 @@
|
||||||
|
|
||||||
# Initial Vars
|
# Initial Vars
|
||||||
functionsrev=1.5.0
|
functionsrev=1.5.0
|
||||||
functionsrev=1.4.0
|
|
||||||
functionsrev=1.5.0
|
|
||||||
#scriptname="${BASH_SOURCE[0]##*/}"
|
#scriptname="${BASH_SOURCE[0]##*/}"
|
||||||
#rundir="${BASH_SOURCE[0]%/*}"
|
#rundir="${BASH_SOURCE[0]%/*}"
|
||||||
#rundir_absolute=$(cd $rundir && pwd)
|
#rundir_absolute=$(cd $rundir && pwd)
|
||||||
|
|
@ -112,15 +110,46 @@ fi
|
||||||
box_break_line=$9
|
box_break_line=$9
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# # Box Drawing characters
|
||||||
|
# case $OSTYPE in
|
||||||
|
# linux-gnu*|cygwin|msys)
|
||||||
|
# light_h='\u2500'
|
||||||
|
# norm_h='\u2501'
|
||||||
|
# double_h='\u2550'
|
||||||
|
# light_v='\u2502'
|
||||||
|
# norm_v='\u2503'
|
||||||
|
# double_v='\u2551'
|
||||||
|
# ;;&
|
||||||
|
# darwin* )
|
||||||
|
# light_h='─'
|
||||||
|
# norm_h='━'
|
||||||
|
# double_h='═'
|
||||||
|
# light_v='│'
|
||||||
|
# norm_v='┃'
|
||||||
|
# double_v='║'
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
|
||||||
|
# # Box border type single-line
|
||||||
|
# box-norm() {
|
||||||
|
# case $OSTYPE in
|
||||||
|
# linux-gnu*|cygwin|msys)
|
||||||
|
# set_borders "${norm_h}" "${norm_h}" "${norm_v}" "${norm_v}" "\u250f" "\u2513" "\u2517" "\u251b" "\u25AB"
|
||||||
|
# set_borders "${double_h}" "${double_h}" "${double_v}" "${double_v}" "\u2554" "\u2557" "\u255A" "\u255D" "\u25AB"
|
||||||
|
# set_borders "\u2580" "\u2584" "\u258C" "\u2590" "\u259B" "\u259C" "\u2599" "\u259F" "\u25AB"
|
||||||
|
# set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "\u25AB" "\u25AB" "\u25AB" "\u25AB" "\u23AF"
|
||||||
|
# set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "\u256D" "\u256E" "\u2570" "\u256F" "\u25A2"
|
||||||
|
|
||||||
|
|
||||||
# Box Drawing characters
|
# Box Drawing characters
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
light_h='\u2500'
|
light_h='─'
|
||||||
norm_h='\u2501'
|
norm_h='━'
|
||||||
double_h='\u2550'
|
double_h='═'
|
||||||
light_v='\u2502'
|
light_v='│'
|
||||||
norm_v='\u2503'
|
norm_v='┃'
|
||||||
double_v='\u2551'
|
double_v='║'
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
light_h='─'
|
light_h='─'
|
||||||
|
|
@ -132,11 +161,23 @@ case $OSTYPE in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
set_borders() {
|
||||||
|
top_border=$1
|
||||||
|
bottom_border=$2
|
||||||
|
left_border=$3
|
||||||
|
right_border=$4
|
||||||
|
left_top_border=$5
|
||||||
|
right_top_border=$6
|
||||||
|
left_bottom_border=$7
|
||||||
|
right_bottom_border=$8
|
||||||
|
box_break_line=$9
|
||||||
|
}
|
||||||
|
|
||||||
# Box border type single-line
|
# Box border type single-line
|
||||||
box-norm() {
|
box-norm() {
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
set_borders "${norm_h}" "${norm_h}" "${norm_v}" "${norm_v}" "\u250f" "\u2513" "\u2517" "\u251b" "\u25AB"
|
set_borders "${norm_h}" "${norm_h}" "${norm_v}" "${norm_v}" "┏" "┓" "┗" "┛" "▫"
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
set_borders "${norm_h}" "${norm_h}" "${norm_v}" "${norm_v}" "┏" "┓" "┗" "┛" "▫"
|
set_borders "${norm_h}" "${norm_h}" "${norm_v}" "${norm_v}" "┏" "┓" "┗" "┛" "▫"
|
||||||
|
|
@ -148,7 +189,7 @@ box-norm() {
|
||||||
box-double() {
|
box-double() {
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
set_borders "${double_h}" "${double_h}" "${double_v}" "${double_v}" "\u2554" "\u2557" "\u255A" "\u255D" "\u25AB"
|
set_borders "${double_h}" "${double_h}" "${double_v}" "${double_v}" "╔" "╗" "╚" "╝" "▫"
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
set_borders "${double_h}" "${double_h}" "${double_v}" "${double_v}" "╔" "╗" "╚" "╝" "▫"
|
set_borders "${double_h}" "${double_h}" "${double_v}" "${double_v}" "╔" "╗" "╚" "╝" "▫"
|
||||||
|
|
@ -160,7 +201,7 @@ box-double() {
|
||||||
box-heavy(){
|
box-heavy(){
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
set_borders "\u2580" "\u2584" "\u258C" "\u2590" "\u259B" "\u259C" "\u2599" "\u259F" "\u25AB"
|
set_borders "▀" "▄" "▌" "▐" "▛" "▜" "▙" "▟" "▫"
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
set_borders "▀" "▄" "▌" "▐" "▛" "▜" "▙" "▟" "▫"
|
set_borders "▀" "▄" "▌" "▐" "▛" "▜" "▙" "▟" "▫"
|
||||||
|
|
@ -172,7 +213,7 @@ box-heavy(){
|
||||||
box-light(){
|
box-light(){
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "\u25AB" "\u25AB" "\u25AB" "\u25AB" "\u23AF"
|
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "▫" "▫" "▫" "▫" "⎯"
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "▫" "▫" "▫" "▫" "⎯"
|
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "▫" "▫" "▫" "▫" "⎯"
|
||||||
|
|
@ -183,7 +224,7 @@ box-light(){
|
||||||
box-rounded(){
|
box-rounded(){
|
||||||
case $OSTYPE in
|
case $OSTYPE in
|
||||||
linux-gnu*|cygwin|msys)
|
linux-gnu*|cygwin|msys)
|
||||||
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "\u256D" "\u256E" "\u2570" "\u256F" "\u25A2"
|
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "╭" "╮" "╰" "╯" "▢"
|
||||||
;;&
|
;;&
|
||||||
darwin* )
|
darwin* )
|
||||||
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "╭" "╮" "╰" "╯" "▢"
|
set_borders "${light_h}" "${light_h}" "${light_v}" "${light_v}" "╭" "╮" "╰" "╯" "▢"
|
||||||
|
|
@ -191,6 +232,21 @@ box-light(){
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
box-singlechar(){
|
||||||
|
set_borders "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "-"
|
||||||
|
}
|
||||||
|
|
||||||
|
set-boxtype(){
|
||||||
|
case $boxtype in
|
||||||
|
norm) box-norm ;;
|
||||||
|
double) box-double ;;
|
||||||
|
heavy) box-heavy ;;
|
||||||
|
light) box-light ;;
|
||||||
|
rounded) box-rounded ;;
|
||||||
|
char) box-singlechar ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
box-singlechar(){
|
box-singlechar(){
|
||||||
set_borders "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "-"
|
set_borders "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "$borderchar" "-"
|
||||||
}
|
}
|
||||||
|
|
@ -208,43 +264,31 @@ box-light(){
|
||||||
#set-boxtype
|
#set-boxtype
|
||||||
|
|
||||||
repchar() {
|
repchar() {
|
||||||
n=1
|
local string=$(printf "%${2}s" "")
|
||||||
while [ $n -le $2 ] ; do
|
echo -n "${string// /$1}"
|
||||||
echo -n "$1"
|
|
||||||
n=$((n+1))
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boxtop() {
|
boxtop() {
|
||||||
echo -n "$left_top_border"
|
printf "%s%s%s\n" "$left_top_border" "$(repchar "$top_border" "$((BOXWIDTH-1))")" "$right_top_border"
|
||||||
repchar "$top_border" $((BOXWIDTH-1))
|
|
||||||
echo -n "$right_top_border"
|
|
||||||
echo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boxbottom() {
|
boxbottom() {
|
||||||
echo -n "$left_bottom_border"
|
printf "%s%s%s\n" "$left_bottom_border" "$(repchar "$bottom_border" "$((BOXWIDTH-1))")" "$right_bottom_border"
|
||||||
repchar "$bottom_border" $((BOXWIDTH-1))
|
|
||||||
echo -n "$right_bottom_border"
|
|
||||||
echo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boxlinelog() {
|
boxlinelog() {
|
||||||
local _cmd=${@:1}
|
logger printf "%s%s\r${ESC}[%sC%s\n" "$left_border" "$1" "$BOXWIDTH" "$right_border"
|
||||||
#echo -e "$left_border $(logger echo -e "${1}")\r${ESC}[${BOXWIDTH}C$right_border"
|
|
||||||
logger echo -e "$left_border $_cmd\r${ESC}[${BOXWIDTH}C$right_border"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boxline(){
|
boxline(){
|
||||||
echo -e "$left_border $1\r${ESC}[${BOXWIDTH}C$right_border"
|
printf "%s%s\r${ESC}[%sC%s\n" "$left_border" "$1" "$BOXWIDTH" "$right_border"
|
||||||
}
|
}
|
||||||
|
|
||||||
boxseparator(){
|
boxseparator(){
|
||||||
repchar "$box_break_line" $((BOXWIDTH-3))
|
printf "%s\n" "$(repchar "$box_break_line" "$((BOXWIDTH-3))")"
|
||||||
echo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boxborder(){
|
boxborder(){
|
||||||
boxtop
|
boxtop
|
||||||
for line in "$@" ; do
|
for line in "$@" ; do
|
||||||
boxline "$line"
|
boxline "$line"
|
||||||
|
|
@ -252,27 +296,23 @@ boxborder(){
|
||||||
boxbottom
|
boxbottom
|
||||||
}
|
}
|
||||||
|
|
||||||
boxborderlog(){
|
boxborderlog(){
|
||||||
local _cmd=()
|
|
||||||
boxtop
|
boxtop
|
||||||
for line in "$@" ; do
|
for line in "$@" ; do
|
||||||
_cmd+=("$line")
|
|
||||||
done
|
|
||||||
for line in ${_cmd[@]} ; do
|
|
||||||
boxlinelog "$line"
|
boxlinelog "$line"
|
||||||
done
|
done
|
||||||
boxbottom
|
boxbottom
|
||||||
}
|
}
|
||||||
|
|
||||||
subboxborder(){
|
subboxborder(){
|
||||||
BOXWIDTH_ORG=$BOXWIDTH
|
local box_width_org="$BOXWIDTH"
|
||||||
BOXWIDTH=$(($BOXWIDTH*75/100))
|
BOXWIDTH=$(("$BOXWIDTH"*75/100))
|
||||||
boxline $(boxtop)
|
boxline "$(boxtop)"
|
||||||
for line in "$@" ; do
|
for line in "$@" ; do
|
||||||
boxline $(boxline "$line")
|
boxline "$(boxline "$line")"
|
||||||
done
|
done
|
||||||
boxline $(boxbottom)
|
boxline "$(boxbottom)"
|
||||||
BOXWIDTH=$BOXWIDTH_ORG
|
BOXWIDTH="$box_width_org"
|
||||||
}
|
}
|
||||||
|
|
||||||
# # For printing center-justified text. To change the padding character, replace the ' ' <~~ whitespace in front of the '{' in the padding variable
|
# # For printing center-justified text. To change the padding character, replace the ' ' <~~ whitespace in front of the '{' in the padding variable
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue