2021-07-29 05:44:12 -07:00
|
|
|
#!/usr/bin/env sh
|
2021-07-29 00:37:35 -07:00
|
|
|
# YES_ZSH
|
2021-07-29 05:44:12 -07:00
|
|
|
# YES_BASH
|
|
|
|
# YES_DASH
|
2021-07-29 00:37:35 -07:00
|
|
|
|
2021-07-30 17:57:08 -07:00
|
|
|
trunc() { ### @-
|
|
|
|
### truncate text to fit within your terminal using the unicode character `…`.
|
2021-08-01 09:27:25 -07:00
|
|
|
###
|
|
|
|
### ```
|
|
|
|
### $ echo $COLUMNS
|
|
|
|
### 84
|
|
|
|
### $ seq 1 100 | tr '\n' ' ' | trunc
|
|
|
|
### 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31…
|
|
|
|
### ```
|
|
|
|
|
2021-07-29 05:44:12 -07:00
|
|
|
[ $# -le 1 ] || { printf "%s\n" "$0: too many arguments" >&2; return 1; }
|
2021-07-29 00:37:35 -07:00
|
|
|
COLUMNS=${COLUMNS:-$(tput cols)}
|
|
|
|
awk -vL=${1:-$COLUMNS} '{e=length>L?"…":"";print substr($0,0,L-(e?1:0)) e}'
|
|
|
|
}
|
|
|
|
|
2021-08-02 13:48:46 -07:00
|
|
|
[ -n "${preload+-}" ] || trunc "$@"
|