rwxrob-dot/scripts/hsep

24 lines
520 B
Plaintext
Raw Normal View History

2022-02-09 07:29:05 +00:00
#!/usr/bin/env bash
# Produces a centered title in the middle of a horizontal rule of text.
_filter(){
[[ -n "$1" ]] && return 1
while IFS= read -ra args; do
"${FUNCNAME[1]}" "${args[@]}"
done
}
hsep() {
_filter "$@" && return $?
local str="$1" char="${2:-#}"
local -i len=${#str}
local -i side=$((((HRULEWIDTH / 2) - len / 2) - 3))
local -i left=$side
local -i right=$side
(( len % 2 == 1 )) && ((right -= 1))
echo "##$(echon "$char" "$left") "$str" $(echon "$char" "$right")"
}
hsep "$@"