From b6d61a9bb651c08639710e9aa6ad3177e279dc35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Thu, 10 Jun 2021 09:28:44 +0200 Subject: ce: Use stdin instead of argument --- ce | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/ce b/ce index 08550aa..c00d1bf 100755 --- a/ce +++ b/ce @@ -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 "$@" -- cgit v1.2.3