git.lirion.de

Of git, get, and gud

aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authormail_redacted_for_web 2026-01-25 12:05:57 +0100
committermail_redacted_for_web 2026-01-25 12:05:57 +0100
commitc6294d51634587de210624821d915dc66996de95 (patch)
tree79e63c482228380a00613d59a2a6222161da7a96 /bin
parente71b4ac145aee3380bdb2cf4b67ac3a931cd1263 (diff)
downloados-patch-0.10.0.tar.bz2
Condense line functions, now usable by any string lengthv0.10.0
Diffstat (limited to 'bin')
-rwxr-xr-xbin/os-patching-adhoc28
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() {