mirror of https://github.com/rwxrob/dot
feat: add center
parent
b08ffa6236
commit
2c0d38fd8b
@ -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…
Reference in New Issue