diff options
author | John Ankarström <john@ankarstrom.se> | 2021-06-10 09:28:44 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2021-06-10 09:28:44 +0200 |
commit | b6d61a9bb651c08639710e9aa6ad3177e279dc35 (patch) | |
tree | 4837f623337aef2d98a1cc1a651b8bd9d74fad76 | |
parent | a28e7a9b9b2a4a45177a02f556806906e191bb8e (diff) | |
download | xutil-b6d61a9bb651c08639710e9aa6ad3177e279dc35.tar.gz |
ce: Use stdin instead of argument
-rwxr-xr-x | ce | 33 |
1 files changed, 19 insertions, 14 deletions
@@ -2,22 +2,27 @@ # ce -- center text -usage() { echo usage: $0 [-cols] text ... 1>&2; exit 1; } +usage() { echo usage: $0 [cols] 1>&2; exit 1; } -case "$1" in --*) cols=${1#-} +[ $# -gt 1 ] && usage + +if [ $# -eq 1 ]; then + cols=${1#-} [ "$cols" -gt 0 ] || usage - shift ;; -*) cols=`tput cols` + shift +else + cols=`tput cols` [ "$cols" -le 80 ] || cols=80 - ;; -esac +fi -[ $# -gt 0 ] || usage -len=`echo "$@" | wc -c` -max=$(((cols - len) / 2)) -i=0 -while [ $((i++)) -lt $max ]; do - printf ' ' +while read line; do + line=${line## } + line=${line%% } + len=`echo "$line" | wc -c` + max=$(((cols - len) / 2)) + i=0 + while [ $((i++)) -lt $max ]; do + printf ' ' + done + echo "$line" done -echo "$@" |