|
|
|
@ -30,47 +30,48 @@ decode() {
|
|
|
|
|
|
|
|
|
|
bot() {
|
|
|
|
|
local DEBUG=0
|
|
|
|
|
OFS=$IFS
|
|
|
|
|
while read line; do
|
|
|
|
|
IFS=:
|
|
|
|
|
set -- $line
|
|
|
|
|
if [ "$1" = "p" ]; then
|
|
|
|
|
decode "$line" 1>&2
|
|
|
|
|
echo 1>&2
|
|
|
|
|
elif [ "$1" = "m" ]; then
|
|
|
|
|
USER="$(decode ${3#*%2F})"
|
|
|
|
|
IFS=$OFS
|
|
|
|
|
MSG="$(decode ${!#})"
|
|
|
|
|
case $MSG in
|
|
|
|
|
*"has set the subject to:"*) ;;
|
|
|
|
|
"sudo make me a sandwich")
|
|
|
|
|
echo "$USER: you're a sandwich"
|
|
|
|
|
;;
|
|
|
|
|
sudo*)
|
|
|
|
|
echo "I'm sorry, $USER. I'm afraid I can't do that."
|
|
|
|
|
;;
|
|
|
|
|
uptime)
|
|
|
|
|
uptime
|
|
|
|
|
;;
|
|
|
|
|
runtime)
|
|
|
|
|
LC_ALL=POSIX ps -o etime= $$
|
|
|
|
|
;;
|
|
|
|
|
exit)
|
|
|
|
|
echo "exiting ..."
|
|
|
|
|
exit 0
|
|
|
|
|
;;
|
|
|
|
|
debug)
|
|
|
|
|
DEBUG=$(( DEBUG ? 0 : 1 ))
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
if [ "$DEBUG" == "0" ]; then
|
|
|
|
|
printf "%s: %s\n" "$USER" "$MSG"
|
|
|
|
|
else
|
|
|
|
|
echo "$@"
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
fi
|
|
|
|
|
while IFS=: read type status from to message; do
|
|
|
|
|
case "$type" in
|
|
|
|
|
m) ;;
|
|
|
|
|
p) decode "$type:$status:$from:$to" 1>&2
|
|
|
|
|
echo 1>&2
|
|
|
|
|
continue
|
|
|
|
|
;;
|
|
|
|
|
*) continue ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
USER="$(decode ${from#*/})"
|
|
|
|
|
MSG="$(decode ${message})"
|
|
|
|
|
|
|
|
|
|
case $MSG in
|
|
|
|
|
*"has set the subject to:"*) ;;
|
|
|
|
|
"sudo make me a sandwich")
|
|
|
|
|
echo "$USER: you're a sandwich"
|
|
|
|
|
;;
|
|
|
|
|
sudo*)
|
|
|
|
|
echo "I'm sorry, $USER. I'm afraid I can't do that."
|
|
|
|
|
;;
|
|
|
|
|
uptime)
|
|
|
|
|
uptime
|
|
|
|
|
;;
|
|
|
|
|
runtime)
|
|
|
|
|
LC_ALL=POSIX ps -o etime= $$
|
|
|
|
|
;;
|
|
|
|
|
exit)
|
|
|
|
|
echo "exiting ..."
|
|
|
|
|
exit 0
|
|
|
|
|
;;
|
|
|
|
|
debug)
|
|
|
|
|
DEBUG=$(( DEBUG ? 0 : 1 ))
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
if [ "$DEBUG" == "0" ]; then
|
|
|
|
|
printf "%s: %s\n" "$USER" "$MSG"
|
|
|
|
|
else
|
|
|
|
|
echo "$MSG"
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done < $out
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|