feat: add center

Rob Muhlestein 1 year ago
parent e68876acd8
commit 8b273c7c18

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Produces a centered text based on HRULEWIDTH environment variable.
: "${HRULEWIDTH:=73}"
_filter() {
[[ -n "$1" ]] && return 1
while IFS= read -ra args; do
"${FUNCNAME[1]}" "${args[@]}"
done
}
center() {
_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 "$pre $(echon "$char" "$left") "$str" $(echon "$char" "$right")"
}
center "$@"
Loading…
Cancel
Save