aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-06-10 09:28:44 +0200
committerJohn Ankarström <john@ankarstrom.se>2021-06-10 09:28:44 +0200
commitb6d61a9bb651c08639710e9aa6ad3177e279dc35 (patch)
tree4837f623337aef2d98a1cc1a651b8bd9d74fad76
parenta28e7a9b9b2a4a45177a02f556806906e191bb8e (diff)
downloadxutil-b6d61a9bb651c08639710e9aa6ad3177e279dc35.tar.gz
ce: Use stdin instead of argument
-rwxr-xr-xce33
1 files 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 "$@"