first attempt to fix #6 on OSX/Darwin

This commit is contained in:
BuildTools 2022-07-08 23:45:49 -07:00
parent e34f2abaa5
commit 38dce93232

373
functions
View file

@ -72,12 +72,40 @@ if [[ "$TERM" != "linux" ]] ; then
fi fi
# Extra Unicode Character Manipulation # Extra Unicode Character Manipulation
return_arrow=$(echo -e "\u2BAC") case $OSTYPE in
enter_arrow=$(echo -e "\u21B5") linux-gnu )
green_check=${grn}$(echo -e "\u2714")${dfl} return_arrow=$(echo -e "\u2BAC")
red_x=${lrd}$(echo -e "\u00D7")${dfl} enter_arrow=$(echo -e "\u21B5")
selected_opt=$(echo -e "\u25C9") green_check=${grn}$(echo -e "\u2714")${dfl}
deselected_opt=$(echo -e "\u25CE") red_x=${lrd}$(echo -e "\u00D7")${dfl}
selected_opt=$(echo -e "\u25C9")
deselected_opt=$(echo -e "\u25CE")
;;
darwin )
return_arrow=$(echo -e "⮬")
enter_arrow=$(echo -e "↵")
green_check=${grn}$(echo -e "✔")${dfl}
red_x=${lrd}$(echo -e "×")${dfl}
selected_opt=$(echo -e "◉")
deselected_opt=$(echo -e "◎")
;;
cygwin )
return_arrow=$(echo -e "\u2BAC")
enter_arrow=$(echo -e "\u21B5")
green_check=${grn}$(echo -e "\u2714")${dfl}
red_x=${lrd}$(echo -e "\u00D7")${dfl}
selected_opt=$(echo -e "\u25C9")
deselected_opt=$(echo -e "\u25CE")
;;
msys )
return_arrow=$(echo -e "\u2BAC")
enter_arrow=$(echo -e "\u21B5")
green_check=${grn}$(echo -e "\u2714")${dfl}
red_x=${lrd}$(echo -e "\u00D7")${dfl}
selected_opt=$(echo -e "\u25C9")
deselected_opt=$(echo -e "\u25CE")
;;
esac
# For drawing pretty boxes # For drawing pretty boxes
terminal_width=$(tput cols) terminal_width=$(tput cols)
@ -87,63 +115,198 @@ else
BOXWIDTH=80 BOXWIDTH=80
fi fi
# For printing center-justified text. To change the padding character, replace the ' ' <~~ whitespace in front of the '{' in the padding variable
center() {
padding="$(printf '%0.1s' {1..500})"
printf '%*.*s %s %*.*s\n' 0 "$(((terminal_width-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
# Box Drawing characters # Box Drawing characters
light_h=$(echo -e "\u2500") case $OSTYPE in
norm_h=$(echo -e "\u2501") linux-gnu )
double_h=$(echo -e "\u2550") light_h=$(echo -e "\u2500")
light_v=$(echo -e "\u2502") norm_h=$(echo -e "\u2501")
norm_v=$(echo -e "\u2503") double_h=$(echo -e "\u2550")
double_v=$(echo -e "\u2551") light_v=$(echo -e "\u2502")
norm_v=$(echo -e "\u2503")
double_v=$(echo -e "\u2551")
;;
darwin )
light_h=$(echo -e "─")
norm_h=$(echo -e "━")
double_h=$(echo -e "═")
light_v=$(echo -e "│")
norm_v=$(echo -e "┃")
double_v=$(echo -e "║")
;;
cygwin )
light_h=$(echo -e "\u2500")
norm_h=$(echo -e "\u2501")
double_h=$(echo -e "\u2550")
light_v=$(echo -e "\u2502")
norm_v=$(echo -e "\u2503")
double_v=$(echo -e "\u2551")
;;
msys )
light_h=$(echo -e "\u2500")
norm_h=$(echo -e "\u2501")
double_h=$(echo -e "\u2550")
light_v=$(echo -e "\u2502")
norm_v=$(echo -e "\u2503")
double_v=$(echo -e "\u2551")
;;
esac
# Box border type single-line # Box border type single-line
box-norm(){ box-norm(){
# ---------------------------------------# # ---------------------------------------#
top_border=${norm_h} case $OSTYPE in
bottom_border=${norm_h} linux-gnu )
left_border=${norm_v} top_border=${norm_h}
right_border=${norm_v} bottom_border=${norm_h}
left_top_border=$(echo -e "\u250f") left_border=${norm_v}
right_top_border=$(echo -e "\u2513") right_border=${norm_v}
left_bottom_border=$(echo -e "\u2517") left_top_border=$(echo -e "\u250f")
right_bottom_border=$(echo -e "\u251b") right_top_border=$(echo -e "\u2513")
box_break_line=$(echo -e "\u25AB") left_bottom_border=$(echo -e "\u2517")
right_bottom_border=$(echo -e "\u251b")
box_break_line=$(echo -e "\u25AB")
;;
darwin )
top_border=${norm_h}
bottom_border=${norm_h}
left_border=${norm_v}
right_border=${norm_v}
left_top_border=$(echo -e "┏")
right_top_border=$(echo -e "┓")
left_bottom_border=$(echo -e "┗")
right_bottom_border=$(echo -e "┛")
box_break_line=$(echo -e "▫")
;;
cygwin )
top_border=${norm_h}
bottom_border=${norm_h}
left_border=${norm_v}
right_border=${norm_v}
left_top_border=$(echo -e "\u250f")
right_top_border=$(echo -e "\u2513")
left_bottom_border=$(echo -e "\u2517")
right_bottom_border=$(echo -e "\u251b")
box_break_line=$(echo -e "\u25AB")
;;
msys )
top_border=${norm_h}
bottom_border=${norm_h}
left_border=${norm_v}
right_border=${norm_v}
left_top_border=$(echo -e "\u250f")
right_top_border=$(echo -e "\u2513")
left_bottom_border=$(echo -e "\u2517")
right_bottom_border=$(echo -e "\u251b")
box_break_line=$(echo -e "\u25AB")
;;
esac
# ---------------------------------------# # ---------------------------------------#
} }
# Box border type double-line # Box border type double-line
box-double(){ box-double(){
# ---------------------------------------# # ---------------------------------------#
top_border=${double_h} case $OSTYPE in
bottom_border=${double_h} linux-gnu )
left_border=${double_v} top_border=${double_h}
right_border=${double_v} bottom_border=${double_h}
left_top_border=$(echo -e '\u2554') left_border=${double_v}
right_top_border=$(echo -e '\u2557') right_border=${double_v}
left_bottom_border=$(echo -e '\u255A') left_top_border=$(echo -e "\u2554")
right_bottom_border=$(echo -e '\u255D') right_top_border=$(echo -e "\u2557")
box_break_line=$(echo -e '\u25AB') left_bottom_border=$(echo -e "\u255A")
right_bottom_border=$(echo -e "\u255D")
box_break_line=$(echo -e "\u25AB")
;;
darwin )
top_border=${double_h}
bottom_border=${double_h}
left_border=${double_v}
right_border=${double_v}
left_top_border=$(echo -e "╔")
right_top_border=$(echo -e "╗")
left_bottom_border=$(echo -e "╚")
right_bottom_border=$(echo -e "╝")
box_break_line=$(echo -e "▫")
;;
cygwin )
top_border=${double_h}
bottom_border=${double_h}
left_border=${double_v}
right_border=${double_v}
left_top_border=$(echo -e "\u2554")
right_top_border=$(echo -e "\u2557")
left_bottom_border=$(echo -e "\u255A")
right_bottom_border=$(echo -e "\u255D")
box_break_line=$(echo -e "\u25AB")
;;
msys )
top_border=${double_h}
bottom_border=${double_h}
left_border=${double_v}
right_border=${double_v}
left_top_border=$(echo -e "\u2554")
right_top_border=$(echo -e "\u2557")
left_bottom_border=$(echo -e "\u255A")
right_bottom_border=$(echo -e "\u255D")
box_break_line=$(echo -e "\u25AB")
;;
esac
# ---------------------------------------# # ---------------------------------------#
} }
# Box border type thick-line # Box border type thick-line
box-heavy(){ box-heavy(){
# ---------------------------------------# # ---------------------------------------#
top_border=$(echo -e '\u2580') case $OSTYPE in
bottom_border=$(echo -e '\u2584') linux-gnu )
left_border=$(echo -e '\u258C') top_border=$(echo -e "\u2580")
right_border=$(echo -e '\u2590') bottom_border=$(echo -e "\u2584")
left_top_border=$(echo -e '\u259B') left_border=$(echo -e "\u258C")
right_top_border=$(echo -e '\u259C') right_border=$(echo -e "\u2590")
left_bottom_border=$(echo -e '\u2599') left_top_border=$(echo -e "\u259B")
right_bottom_border=$(echo -e '\u259F') right_top_border=$(echo -e "\u259C")
box_break_line=$(echo -e '\u25AC') left_bottom_border=$(echo -e "\u2599")
right_bottom_border=$(echo -e "\u259F")
box_break_line=$(echo -e "\u25AC")
;;
darwin )
top_border=$(echo -e "▀")
bottom_border=$(echo -e "▄")
left_border=$(echo -e "▌")
right_border=$(echo -e "▐")
left_top_border=$(echo -e "▛")
right_top_border=$(echo -e "▜")
left_bottom_border=$(echo -e "▙")
right_bottom_border=$(echo -e "▟")
box_break_line=$(echo -e "▫")
;;
cygwin )
top_border=$(echo -e "\u2580")
bottom_border=$(echo -e "\u2584")
left_border=$(echo -e "\u258C")
right_border=$(echo -e "\u2590")
left_top_border=$(echo -e "\u259B")
right_top_border=$(echo -e "\u259C")
left_bottom_border=$(echo -e "\u2599")
right_bottom_border=$(echo -e "\u259F")
box_break_line=$(echo -e "\u25AC")
;;
msys )
top_border=$(echo -e "\u2580")
bottom_border=$(echo -e "\u2584")
left_border=$(echo -e "\u258C")
right_border=$(echo -e "\u2590")
left_top_border=$(echo -e "\u259B")
right_top_border=$(echo -e "\u259C")
left_bottom_border=$(echo -e "\u2599")
right_bottom_border=$(echo -e "\u259F")
box_break_line=$(echo -e "\u25AC")
;;
esac
# ---------------------------------------# # ---------------------------------------#
} }
@ -151,29 +314,103 @@ box-heavy(){
box-light(){ box-light(){
# ---------------------------------------# # ---------------------------------------#
#top_border=$(echo -e '\u23BA') #top_border=$(echo -e '\u23BA')
top_border=${light_h} case $OSTYPE in
bottom_border=${light_h} linux-gnu )
left_border=${light_v} top_border=${light_h}
right_border=${light_v} bottom_border=${light_h}
left_top_border=$(echo -e '\u23BE') left_border=${light_v}
right_top_border=$(echo -e '\u23CB') right_border=${light_v}
left_bottom_border=$(echo -e '\u23BF') left_top_border=$(echo -e "\u23BE")
right_bottom_border=$(echo -e '\u23CC') right_top_border=$(echo -e "\u23CB")
box_break_line=$(echo -e '\u23AF') left_bottom_border=$(echo -e "\u23BF")
right_bottom_border=$(echo -e "\u23CC")
box_break_line=$(echo -e "\u23AF")
;;
darwin )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "⎾")
right_top_border=$(echo -e "⏋")
left_bottom_border=$(echo -e "⎿")
right_bottom_border=$(echo -e "⏌")
box_break_line=$(echo -e "⎯")
;;
cygwin )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "\u23BE")
right_top_border=$(echo -e "\u23CB")
left_bottom_border=$(echo -e "\u23BF")
right_bottom_border=$(echo -e "\u23CC")
box_break_line=$(echo -e "\u23AF")
;;
msys )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "\u23BE")
right_top_border=$(echo -e "\u23CB")
left_bottom_border=$(echo -e "\u23BF")
right_bottom_border=$(echo -e "\u23CC")
box_break_line=$(echo -e "\u23AF")
;;
esac
# ---------------------------------------# # ---------------------------------------#
} }
box-rounded(){ box-rounded(){
# ---------------------------------------# # ---------------------------------------#
top_border=${light_h} case $OSTYPE in
bottom_border=${light_h} linux-gnu )
left_border=${light_v} top_border=${light_h}
right_border=${light_v} bottom_border=${light_h}
left_top_border=$(echo -e '\u256D') left_border=${light_v}
right_top_border=$(echo -e '\u256E') right_border=${light_v}
left_bottom_border=$(echo -e '\u2570') left_top_border=$(echo -e "\u256D")
right_bottom_border=$(echo -e '\u256F') right_top_border=$(echo -e "\u256E")
box_break_line=$(echo -e '\u25A2') left_bottom_border=$(echo -e "\u2570")
right_bottom_border=$(echo -e "\u256F")
box_break_line=$(echo -e "\u25A2")
;;
darwin )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "╭")
right_top_border=$(echo -e "╮")
left_bottom_border=$(echo -e "╰")
right_bottom_border=$(echo -e "╯")
box_break_line=$(echo -e "▢")
;;
cygwin )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "\u256D")
right_top_border=$(echo -e "\u256E")
left_bottom_border=$(echo -e "\u2570")
right_bottom_border=$(echo -e "\u256F")
box_break_line=$(echo -e "\u25A2")
;;
msys )
top_border=${light_h}
bottom_border=${light_h}
left_border=${light_v}
right_border=${light_v}
left_top_border=$(echo -e "\u256D")
right_top_border=$(echo -e "\u256E")
left_bottom_border=$(echo -e "\u2570")
right_bottom_border=$(echo -e "\u256F")
box_break_line=$(echo -e "\u25A2")
;;
esac
# ---------------------------------------# # ---------------------------------------#
} }
@ -191,7 +428,7 @@ box-singlechar(){
# ---------------------------------------# # ---------------------------------------#
} }
# set-boxtype(){ set-boxtype(){
case $boxtype in case $boxtype in
norm) box-norm ;; norm) box-norm ;;
double) box-double ;; double) box-double ;;
@ -200,7 +437,7 @@ box-singlechar(){
rounded) box-rounded ;; rounded) box-rounded ;;
char) box-singlechar ;; char) box-singlechar ;;
esac esac
# } }
#set-boxtype #set-boxtype
@ -235,6 +472,12 @@ boxseparator(){
echo echo
} }
# # For printing center-justified text. To change the padding character, replace the ' ' <~~ whitespace in front of the '{' in the padding variable
# center() {
# padding="$(printf '%0.1s' {1..500})"
# printf '%*.*s %s %*.*s\n' 0 "$(((terminal_width-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
# }
# 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
center() { center() {
padding="$(printf '%0.2s' ={1..500})" padding="$(printf '%0.2s' ={1..500})"