37 lines
723 B
Plaintext
37 lines
723 B
Plaintext
![]() |
#!/bin/zsh
|
||
|
zparseopts -D -E p:=padding -padding:=padding
|
||
|
lines=("$@")
|
||
|
if [[ -z $lines ]]; then
|
||
|
lines=()
|
||
|
while read line; do
|
||
|
lines+=($line)
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
width=0
|
||
|
for line in $lines; do
|
||
|
if [[ ${#line} -gt $width ]]; then
|
||
|
width=${#line}
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
lpad_width=$((width + ${padding[2]:-0}))
|
||
|
rpad_width=$((lpad_width * 2))
|
||
|
|
||
|
pagga=( $(
|
||
|
for i in {1..$#lines}; do
|
||
|
line=$lines[$i]
|
||
|
padded="${(r:$(( rpad_width - ${#line})):: :)${(l:${lpad_width}:: :)line}}"
|
||
|
spaces=$(echo $line | tr -cd ' ' | wc -c)
|
||
|
if [[ $spaces -gt 0 ]]; then
|
||
|
padded="$padded${(l:spaces:: :)}"
|
||
|
fi
|
||
|
echo $padded
|
||
|
done | figlet -fpagga -t
|
||
|
) )
|
||
|
|
||
|
left_space=$(( (COLUMNS - ${#pagga[1]}) / 2 ))
|
||
|
for line in ${pagga[*]}; do
|
||
|
echo "${(l:left_space:: :)}$line"
|
||
|
done
|