diff options
-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 "$@" |