Article View: comp.mail.mush
Article #933Re: instant notification of new mail in curses mode (LONG)
From: Bill Petro - GSG Marketing
Date: Wed, 07 Jun 1989 22:57
Date: Wed, 07 Jun 1989 22:57
222 lines
9056 bytes
9056 bytes
Here is a little tool that I use on my Sun that will tell you not only
when you get new mail, but how many new mail items you have, and how
many unread items you have. It is called "checkmail" and can be run as
a window tool in iconic form. I run it automatically every 120 seconds
as part of my .suntools file with a very large font.
Here is my .suntools entry (should be all one line):
shelltool -Wp 2 153 -Ws 481 224 -WP 600 0 -Wi
-Wt /usr/lib/fonts/fixedwidthfonts/gallant.r.19
-Wl "suntool: checkmail" -WL "suntool: checkmail" checkmail -i 120
Here is the shell script itself. It is in "shar" format, which means
save everything below the cutmark into a file called "neato". Then
type "sh neato" and three files will be created: checkmail, mail.icon,
and nomail.icon. I have included these two icons for your viewing
pleasure. Otherwise, you can uncomment the lines "#Havemail ..." and
"#Nomail ...". Type "chmod +x checkmail" and you are set. To run it
all the time, put the entry above in your .suntools file. To run it on the
command line with a 120 second cycle, type "shelltool checkmail -i 120 &"
Bill Petro
------------------- Cutmark, cut here, valuable coupon ----------------------
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: checkmail cm_shar mail.icon nomail.icon
# Wrapped by rock@warp on Wed Jun 7 15:18:22 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'checkmail' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'checkmail'\"
else
echo shar: Extracting \"'checkmail'\" \(1030 characters\)
sed "s/^X//" >'checkmail' <<'END_OF_FILE'
X#! /bin/sh
X#
X# checkmail - checks for new mail and updates icon label
X# with "new" message.
X#
X# syntax: checkmail [ -i seconds ]
X#
X# 16.nov.87 yOOnkim@Sun.COM
X#
X
Interval=60 # In seconds
X
case $1 in
X-i*)
X if [ $# = 2 ]
X then
X Interval=$2
X fi
X ;;
esac
X
Havemail=mail.icon
Nomail=nomail.icon
X#Havemail=/usr/include/images/mail.icon
X#Nomail=/usr/include/images/nomail.icon
X
XEsc=''
Close="echo -n ${Esc}[2t"
X
newLabel()
X{
X echo -n "${Esc}]L$1\\"
X}
X
newicon()
X{
X echo -n "${Esc}]I$1\\"
X}
X
newicon $Nomail
newLabel ""
X$Close
while true
do
X Top=`echo x | mail | head -2 | egrep "new$|unread$"`
X case "$Top" in
X *new*unread)
X label=`echo $Top | \
X awk '{printf("%d/%d", $(NF-3), $(NF-1));}'`
X newLabel "${label}"
X newicon $Havemail
X ;;
X *new)
X label=`echo $Top | awk '{printf(" %d", $(NF-1));}'`
X newLabel "${label}"
X newicon $Havemail
X ;;
X *unread)
X label=`echo $Top | awk '{printf("%d_U", $(NF-1));}'`
X newLabel "${label}"
X newicon $Havemail
X ;;
X *)
X newLabel ""
X newicon $Nomail
X ;;
X esac
X sleep $Interval
done
END_OF_FILE
echo shar: 3 control characters may be missing from \"'checkmail'\"
if test 1030 -ne `wc -c <'checkmail'`; then
echo shar: \"'checkmail'\" unpacked with wrong size!
fi
chmod +x 'checkmail'
# end of 'checkmail'
fi
if test -f 'cm_shar' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cm_shar'\"
else
echo shar: Extracting \"'cm_shar'\" \(0 characters\)
sed "s/^X//" >'cm_shar' <<'END_OF_FILE'
END_OF_FILE
if test 0 -ne `wc -c <'cm_shar'`; then
echo shar: \"'cm_shar'\" unpacked with wrong size!
fi
# end of 'cm_shar'
fi
if test -f 'mail.icon' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'mail.icon'\"
else
echo shar: Extracting \"'mail.icon'\" \(1933 characters\)
sed "s/^X//" >'mail.icon' <<'END_OF_FILE'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X */
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0008,0x0000,0x0000,0x0000,0x000C,0x0000,
X 0x0000,0x0000,0x000E,0x0000,0x0000,0x0000,0x000F,0x0000,
X 0x0000,0x0000,0x000F,0x8000,0x0000,0x0000,0x000F,0xC000,
X 0x0000,0x0000,0x000F,0xE000,0x0000,0x0000,0x000F,0xF000,
X 0x0000,0x0000,0x000F,0xF800,0x0000,0x0000,0x000F,0xFC00,
X 0x0000,0x0000,0x000F,0xFE00,0x0000,0x0000,0x000F,0xFF00,
X 0x7FFF,0xFFFF,0xFFFF,0xFF80,0x7FFF,0xFFFF,0xFFFF,0xFFC0,
X 0x7FFF,0xFFFF,0xFFFF,0xFFE0,0x7E7C,0xF1E6,0x7FFF,0xFFF0,
X 0x7E38,0xE4E6,0x7FFF,0xFFF8,0x7E10,0xCE66,0x7FFF,0xFFFC,
X 0x7E44,0xCE66,0x7FFF,0xFFFE,0x7E6C,0xCE66,0x7FFF,0xFFFF,
X 0x7E7C,0xC066,0x7FFF,0xFFFF,0x7E7C,0xCE66,0x7FFF,0xFFFE,
X 0x7E7C,0xCE66,0x7FFF,0xFFFC,0x7E7C,0xCE66,0x7FFF,0xFFF8,
X 0x7E7C,0xCE66,0x03FF,0xFFF0,0x7E7C,0xCE66,0x03FF,0xFFE0,
X 0x7FFF,0xFFFF,0xFFFF,0xFFC0,0x7FFF,0xFFFF,0xFFFF,0xFF80,
X 0x0000,0x0000,0x000F,0xFF00,0x0000,0x0000,0x000F,0xFE00,
X 0x0000,0x0000,0x000F,0xFC00,0x0000,0x0000,0x000F,0xF800,
X 0x0000,0x0000,0x000F,0xF000,0x0000,0x0000,0x000F,0xE000,
X 0x0000,0x0000,0x000F,0xC000,0x0000,0x0000,0x000F,0x8000,
X 0x0000,0x0000,0x000F,0x0000,0x0000,0x0000,0x000E,0x0000,
X 0x0000,0x0000,0x000C,0x0000,0x0000,0x0000,0x0008,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
END_OF_FILE
if test 1933 -ne `wc -c <'mail.icon'`; then
echo shar: \"'mail.icon'\" unpacked with wrong size!
fi
# end of 'mail.icon'
fi
if test -f 'nomail.icon' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'nomail.icon'\"
else
echo shar: Extracting \"'nomail.icon'\" \(1933 characters\)
sed "s/^X//" >'nomail.icon' <<'END_OF_FILE'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X */
X 0x0000,0x0000,0x0000,0x0000,0x7FFF,0xFFFF,0xFFFF,0xFFFE,
X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE,
X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE,
X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xFFFF,0xFFFF,0xFFFE,
X 0x7FFF,0xFFFF,0xFFFF,0xFFFE,0x7FFF,0xE000,0x0000,0x01FE,
X 0x7FFF,0x01FF,0xFFFF,0xFE7E,0x7FF8,0xFE3F,0xFFFF,0xFF9E,
X 0x7FE7,0xFFCF,0xFFFF,0xFFEE,0x7FDF,0xFFF7,0xFFFF,0xFFEE,
X 0x7F3F,0x8FF9,0xFFFF,0xFFF6,0x7EFF,0x07FE,0xFFFF,0xFFF6,
X 0x7EFE,0x03FE,0xFFFF,0xFFFA,0x7DFE,0x03FF,0x7FFF,0xFFFA,
X 0x7BFE,0x03FF,0xBFFF,0xFFFA,0x7BFF,0x07FF,0xBFFF,0xFFFA,
X 0x77FF,0x8FFF,0xDFFF,0xFFFA,0x77FF,0xFFFF,0xDFFF,0xFFFA,
X 0x77FF,0xFFFF,0xCFFF,0xFFFA,0x6FFF,0xFFFF,0xEFFF,0xFFFA,
X 0x6FFF,0xFFFF,0xEFFF,0xFFFA,0x6C00,0x0000,0x6FFF,0xFFDA,
X 0x5DFF,0xFFFF,0x6FFF,0xFF1A,0x5DFF,0xFFFF,0x6FFF,0xFC5A,
X 0x5DFF,0xFFFF,0x6FFF,0xF9DA,0x5C00,0x0000,0x6FFF,0xE3DA,
X 0x5FFF,0xFFFF,0xEFFF,0xCBDA,0x5FFF,0xFFFF,0xEFFF,0x3BDA,
X 0x5FFF,0xFFFF,0xEFFC,0x7BDA,0x5FFF,0xFFFF,0xEFF9,0xFBDA,
X 0x5FFF,0xFFFF,0xEFE3,0xFBDA,0x5FFF,0xFFFF,0xEE0F,0xFBDA,
X 0x5FFF,0xFFFF,0xEC1F,0xFBBA,0x5FFF,0xFFFF,0xEC1F,0xFA7A,
X 0x5FFF,0xFFFF,0xEC1F,0xF9FA,0x5FFF,0xFFFF,0xEE3F,0xFBFA,
X 0x5FFF,0xFFFF,0xEFFF,0xFFF2,0x5BDE,0x7BD8,0x2FFF,0xFFEE,
X 0x59DD,0xB9DB,0xEFFF,0xFFDE,0x59DB,0xD9DB,0xEFFF,0xFF3E,
X 0x5ADB,0xDADB,0xEFFF,0xFEFE,0x5ADB,0xDADB,0xEFFF,0xF9FE,
X 0x5B5B,0xDB58,0x6FFF,0xF7FE,0x5B5B,0xDB5B,0xEFFF,0xC7FE,
X 0x5B9B,0xDB9B,0xEFFF,0xB7FE,0x5B9B,0xDB9B,0xEFFF,0x77FE,
X 0x5BDD,0xBBDB,0xEFFC,0xF7FE,0x5BDE,0x7BD8,0x2FFB,0xF7FE,
X 0x5FFF,0xFFFF,0xEFE3,0xF7FE,0x5FFF,0xFFFF,0xEFDB,0xF7FE,
X 0x5FFF,0xFFFF,0xEFBB,0xF7FE,0x5FFF,0xFFFF,0xEE7B,0xF7FE,
X 0x5FFF,0xFFFF,0xEDFB,0xF7FE,0x5FFF,0xFFFF,0xEBFB,0xF7FE,
X 0x4000,0x0000,0x07FB,0xF7FE,0x7FFF,0xFFF7,0xFFFB,0xF7FE,
X 0x7FFF,0xFFF7,0xFFFB,0xF7FE,0x7FFF,0xFFF7,0xFFFB,0xF7FE,
X 0x7FFF,0xFFF7,0xFFFB,0xF7FE,0x0000,0x0000,0x0000,0x0000
END_OF_FILE
if test 1933 -ne `wc -c <'nomail.icon'`; then
echo shar: \"'nomail.icon'\" unpacked with wrong size!
fi
# end of 'nomail.icon'
fi
echo shar: End of shell archive.
exit 0
{decwrl,hplabs,ucbvax}!sun!warp!rock Bill Petro
Technical Details
Message-ID:
<108723@sun.Eng.Sun.COM>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!unmvax!pprg.unm.edu!hc!ames!amdcad!sun!warp!rockShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!unmvax!pprg.unm.edu!hc!ames!amdcad!sun!warp!rock From: rock%warp@Sun.COM (Bill Petro - GSG Marketing) Newsgroups: comp.mail.mush Subject: Re: instant notification of new mail in curses mode (LONG) Message-ID: <108723@sun.Eng.Sun.COM> Date: 7 Jun 89 22:57:20 GMT Sender: news@sun.Eng.Sun.COM Reply-To: rock@sun.UUCP (Bill Petro - GSG Marketing) Organization: Sun Microsystems, Mountain View Lines: 222