diff options
| -rwxr-xr-x | bin/os-patching-adhoc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/bin/os-patching-adhoc b/bin/os-patching-adhoc index 0b496be..0e88731 100755 --- a/bin/os-patching-adhoc +++ b/bin/os-patching-adhoc @@ -22,29 +22,31 @@ fi # 0. Internal helpers -hline() { +myline() { + [ -z "$1" ] && return 1 [ -n "$COLUMNS" ] && MYCOLS="$COLUMNS" [ -z "$MYCOLS" ] && MYCOLS="$(/usr/bin/tput cols 2>/dev/null)" [ -z "$MYCOLS" ] && MYCOLS=16 - c=0 + # determine how often $1 fits into $MYCOLS + # bc rounds down, so we'll just mimick a ceiling function in bash + denom="${#1}" + (( iter=((MYCOLS+denom-1)/denom)-1 )) + (( leftover=MYCOLS-(denom*iter) )) printf '\033[1m' - while [ "$c" -lt "$MYCOLS" ]; do - printf '─' + c=0 + while [ "$c" -lt "$iter" ]; do + printf '%b' "$1" c="$((c+1))" done + printf '%b' "${1:0:leftover}" printf '\033[0m\n' } +hline() { + myline '─' +} dline() { - [ -n "$COLUMNS" ] && MYCOLS="$COLUMNS" - [ -z "$MYCOLS" ] && MYCOLS="$(/usr/bin/tput cols 2>/dev/null)" - [ -z "$MYCOLS" ] && MYCOLS=16 - c=0 - while [ "$c" -lt "$MYCOLS" ]; do - printf '┄' - c="$((c+1))" - done - printf '\n' + myline '┄' } header() { |
