clippy-say - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- clippy-say (1243B) --- 1 #!/bin/sh 2 3 maxbubblelen=74 4 #DST="" 5 DSTDIR="/br/gopher/paste" 6 CLIPPYTMPL="/br/gopher/memecache/clippy.vtv" 7 8 speaktext="$@" 9 speaklen="$(utf8expr length "${speaktext}")" 10 11 cd /tmp 12 tmpfile="$(mktemp p-XXXXXXXXXXXXX.txt)" 13 touch "${tmpfile}" 14 15 { 16 bubblelen=$(($speaklen + 4)) 17 if [ $bubblelen -gt $maxbubblelen ]; 18 then 19 bubblelen=$maxbubblelen 20 fi 21 22 printf " " 23 i=0 24 while [ $i -lt $((bubblelen - 2)) ]; 25 do 26 printf "_" 27 i=$(($i + 1)) 28 done 29 printf "\n" 30 31 textoffset=1 32 bubblecontentlen=$(($bubblelen - 4)) 33 while [ $speaklen -gt 0 ]; 34 do 35 newoffset=$(($textoffset + $bubblecontentlen)) 36 textsubstr="$(utf8expr substr "$speaktext" $textoffset $bubblecontentlen)" 37 substrlen="$(utf8expr length "${textsubstr}")" 38 printf "| %s" "$textsubstr" 39 while [ $substrlen -le $bubblecontentlen ]; 40 do 41 printf " " 42 substrlen=$(($substrlen + 1)) 43 done 44 printf "|\n" 45 textoffset=$(($newoffset)) 46 speaklen=$(($speaklen - $substrlen)) 47 done 48 49 printf " " 50 i=0 51 while [ $i -lt $((bubblelen - 2)) ]; 52 do 53 printf "-" 54 i=$(($i + 1)) 55 done 56 printf "\n" 57 58 tail -n+4 "${CLIPPYTMPL}" 59 } > $tmpfile 60 61 mv $tmpfile $DSTDIR 62 chmod g+rw $DSTDIR/$tmpfile 63 chgrp bitreich $DSTDIR/$tmpfile 64 65 name="$(basename $tmpfile)" 66 printf "gophers://bitreich.org/0/p/%s\n" "$name" 67