66 lines
1.6 KiB
Bash
66 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
border_color=5
|
||
text_color=4
|
||
|
||
# why not python?
|
||
|
||
function boxify() {
|
||
local s=("$@") b w
|
||
for l in "${s[@]}"; do
|
||
((w < ${#l})) && {
|
||
b="$l"
|
||
w="${#l}"
|
||
}
|
||
done
|
||
tput setaf $border_color
|
||
echo "╭─${b//?/─}─╮
|
||
│ ${b//?/ } │"
|
||
for l in "${s[@]}"; do
|
||
printf '│ %s%*s%s │\n' "$(tput setaf $text_color)" "-$w" "$l" "$(tput setaf $border_color)"
|
||
done
|
||
echo "│ ${b//?/ } │
|
||
╰─${b//?/─}─╯"
|
||
tput sgr 0
|
||
}
|
||
|
||
# parse args
|
||
if [[ "$#" -eq 0 ]]; then
|
||
set -- "use boxify <text>"
|
||
fi
|
||
|
||
boxify "$@"
|
||
# 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
# A ╷ ╶ ┌ ╴ ┐ ─ ┬ ╵ │ └ ├ ┘ ┤ ┴ ┼
|
||
# B ╭ ╮ ╰ ╯
|
||
#
|
||
# 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
# U+250x ─ ━ │ ┃ ┄ ┅ ┆ ┇ ┈ ┉ ┊ ┋ ┌ ┍ ┎ ┏
|
||
# U+251x ┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┞ ┟
|
||
# U+252x ┠ ┡ ┢ ┣ ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┬ ┭ ┮ ┯
|
||
# U+253x ┰ ┱ ┲ ┳ ┴ ┵ ┶ ┷ ┸ ┹ ┺ ┻ ┼ ┽ ┾ ┿
|
||
# U+254x ╀ ╁ ╂ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊ ╋ ╌ ╍ ╎ ╏
|
||
# U+255x ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟
|
||
# U+256x ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ╭ ╮ ╯
|
||
# U+257x ╰ ╱ ╲ ╳ ╴ ╵ ╶ ╷ ╸ ╹ ╺ ╻ ╼ ╽ ╾ ╿
|
||
|
||
# function boxify() {
|
||
# local s=("$@") b w
|
||
# for l in "${s[@]}"; do
|
||
# ((w < ${#l})) && {
|
||
# b="$l"
|
||
# w="${#l}"
|
||
# }
|
||
# done
|
||
# tput setaf 3
|
||
# echo " -${b//?/-}-
|
||
# | ${b//?/ } |"
|
||
# for l in "${s[@]}"; do
|
||
# printf '| %s%*s%s |\n' "$(tput setaf 4)" "-$w" "$l" "$(tput setaf 3)"
|
||
# done
|
||
# echo "| ${b//?/ } |
|
||
# -${b//?/-}-"
|
||
# tput sgr 0
|
||
# }
|
||
#
|
||
#
|