[svlug] Calcurse Mail Reminder
Scott DuBois
rhcom.linux at gmail.com
Tue Jan 20 08:23:21 PST 2015
On Tue, Jan 20, 2015 at 12:11:43AM -0700, Jesse Monroy wrote:
> Scott,
> I read through your script and I would make a few Stylistic changes.
> Again style, mostly for read ability.
>
> ON Line 33 you have:
> if [ "$today" != '' ]; then
>
> I would change this to:
> if [ X"$today" != X"" ]; then
Thanks for this tip. Yes, I've been bitten by the Python syntax complaints
before. It's annoying until one gets it drilled into their head.
I made the suggested changes as well as cleaned some other syntax up. I also
added the 'todo' list items at the end.
Unfortunately, I found a bug this morning. If one attaches a note to an 'all
day' item, the note identifier hash gets associated to field 3 instead of 8 and
throws an error. So I need to write a conditional that reads field 3 and
determines if there is a matching hash as well. I think I can use the '>' as a
marker as long as there is no empty space "" to the right of it.
# Script starts below this line -----------------
#!/bin/bash
#
# Calcurse email reminders
#
# Verifies date association and
# includes any related notes
#
# Sun Jan 18 16:39:43 PST 2015
# Written by: Scott DuBois
# file location to appointments
mssg=/home/roguehorse/.calcurse/apts
# file location to notes
notes=/home/roguehorse/.calcurse/notes
# file location to todo
todo=/home/roguehorse/.calcurse/todo
# date results to variable
mdy=$(date +%m/%d/%Y)
# verify file exists
if [ -f $mssg ]; then
# read each line from file separately
while read -r line
do
appts=$line
# check to see if dates match
today=$(echo $appts | grep $mdy)
if [ X"$today" != X"" ]; then
# print date relative messages
echo $today
printf "\n"
#check to see if notes exist
if [[ "$today" =~ '>'[^' '] ]]; then
# extract uniqe note ID
uniqID=$(echo $today | cut --delimiter=' ' --fields=8 | tr -d '>')
# retrieve notes by ID and append
getNote=$(cat $notes/$uniqID)
printf "Appt. Notes...\n"
echo $getNote
printf "\n"
fi
fi
done < $mssg
else
printf "Nothing Today\n"
fi
# todo list
# verify file exists
if [ -f $todo ]; then
printf "Todo List...\n"
# read each line from file separately
while read -r todoLine
do
list=$todoLine
echo $list
done < $todo
fi
# End of script
# Script ends above this line -----------------------
--
EFF ID: 1731778
"The difference between stupidity and genius is that genius has limits."
-- Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
Url : http://lists.svlug.org/archives/svlug/attachments/20150120/2ea04fb7/attachment-0001.bin
More information about the svlug
mailing list