[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
change reminder script
- To: http://www.spamgourmet.com/~home.robertwork
- Subject: change reminder script
- From: http://dummy.us.eu.org/robert (Robert)
- Date: Mon, 02 Jan 2017 16:14:10 -0800
--- bin/reminder.calctime.~49~ 2016-08-07 10:53:02.590834421 -0700
+++ bin/reminder.calctime 2017-01-02 16:02:31.174058144 -0800
@@ -17,11 +17,11 @@
if expr "$TIME" : '20[0-9][0-9]'>/dev/null; then
:
elif [ "x$TIME" = xevening -o "x$TIME" = xmorning \
- -o "x$TIME" = xnoon ] \
- || expr "$TIME" : '[0-9]*[ap]m'>/dev/null \
- || expr "$TIME" : '[0-9][0-9]*:'>/dev/null \
- || expr "$TIME" : '[0-9]*[0-9]$'>/dev/null \
- || expr "$TIME" : '.*+'>/dev/null; then
+ -o "x$TIME" = xnoon ] ||
+ expr "$TIME" : '[0-9]*[ap]m'>/dev/null ||
+ expr "$TIME" : '[0-9][0-9]*:'>/dev/null ||
+ expr "$TIME" : '[0-9]*[0-9]$'>/dev/null ||
+ expr "$TIME" : '.*+'>/dev/null; then
break
elif [ "x$TIME" = xweek -o "x$TIME" = xmonth ]; then
DATE=$TODAY
@@ -42,45 +42,53 @@
break
fi
if date -d "$TIME" +%Y%m%d >/dev/null 2>&1; then
- DATE=`date -d "$TIME" +%Y%m%d`
- SDATE=`date -d "$TIME" +%Y/%m/%d`
- if [ $TODAY = "$DATE" ]; then
- DATE=""
- SDATE=""
- ALTTIME=`echo "$TIME" | sed -e 's,next *,,'`
- if date -d "next $TIME" +%Y%m%d >/dev/null 2>&1; then
- DATE=`date -d "next $TIME" +%Y%m%d`
- SDATE=`date -d "next $TIME" +%Y/%m/%d`
- if [ $TODAY = "$DATE" -a "x$TIME" != xtoday ]; then
- DATE=`date -d "2 $TIME" +%Y%m%d`
- SDATE=`date -d "2 $TIME" +%Y/%m/%d`
- fi
- elif date -d "$ALTTIME" +%Y%m%d >/dev/null 2>&1; then
- DATE=`date -d "$ALTTIME" +%Y%m%d`
- SDATE=`date -d "$ALTTIME" +%Y/%m/%d`
- if [ $TODAY = "$DATE" -a "x$ALTTIME" != xtoday ]; then
- DATE=`date -d "2 $ALTTIME" +%Y%m%d`
- SDATE=`date -d "2 $ALTTIME" +%Y/%m/%d`
- fi
- fi
- unset ALTTIME
+ if [ "x$BASEFILE" != x -a -e $BASEFILE ]; then
+ DATE=`date -r "$BASEFILE" +%Y/%m/%d \
+ | xargs -i perl -e 'use Date::Manip;print UnixDate(Date_GetNext("{}", "'"$TIME"'", 0), "%Y%m%d")'`
+ SDATE=`date -r "$BASEFILE" +%Y/%m/%d \
+ | xargs -i perl -e 'use Date::Manip;print UnixDate(Date_GetNext("{}", "'"$TIME"'", 0), "%Y/%m/%d")'`
+ fi
+ if [ "x$DATE" = x ]; then
+ DATE=`date -d "$TIME" +%Y%m%d`
+ SDATE=`date -d "$TIME" +%Y/%m/%d`
fi
- if [ "x$DATE" != x ]; then
- if [ $DATE -lt $TODAY ]; then
- DATE=`date -d 'next year' +%Y|xargs -i date -d "$TIME {}" +%Y%m%d`
- SDATE=`date -d 'next year' +%Y|xargs -i date -d "$TIME {}" +%Y/%m/%d`
+ fi
+ if [ $TODAY = "$DATE" ]; then
+ DATE=""
+ SDATE=""
+ ALTTIME=`echo "$TIME" | sed -e 's,next *,,'`
+ if date -d "next $TIME" +%Y%m%d >/dev/null 2>&1; then
+ DATE=`date -d "next $TIME" +%Y%m%d`
+ SDATE=`date -d "next $TIME" +%Y/%m/%d`
+ if [ $TODAY = "$DATE" -a "x$TIME" != xtoday ]; then
+ DATE=`date -d "2 $TIME" +%Y%m%d`
+ SDATE=`date -d "2 $TIME" +%Y/%m/%d`
fi
- #if [ $DATE -lt $TODAY ]; then
- # DATE=`date -d "$TIME tomorrow" +%Y%m%d`
- # SDATE=`date -d "$TIME tomorrow" +%Y/%m/%d`
- #fi
- if [ $DATE -lt $TODAY ]; then
- DATE=`expr $DATE + 10000`
- SDATE=`expr $SDATE + 10000`
- else
- TIME=""
+ elif date -d "$ALTTIME" +%Y%m%d >/dev/null 2>&1; then
+ DATE=`date -d "$ALTTIME" +%Y%m%d`
+ SDATE=`date -d "$ALTTIME" +%Y/%m/%d`
+ if [ $TODAY = "$DATE" -a "x$ALTTIME" != xtoday ]; then
+ DATE=`date -d "2 $ALTTIME" +%Y%m%d`
+ SDATE=`date -d "2 $ALTTIME" +%Y/%m/%d`
fi
fi
+ unset ALTTIME
+ fi
+ if [ "x$DATE" != x ]; then
+ if [ $DATE -lt $TODAY ]; then
+ DATE=`date -d 'next year' +%Y|xargs -i date -d "$TIME {}" +%Y%m%d`
+ SDATE=`date -d 'next year' +%Y|xargs -i date -d "$TIME {}" +%Y/%m/%d`
+ fi
+ #if [ $DATE -lt $TODAY ]; then
+ # DATE=`date -d "$TIME tomorrow" +%Y%m%d`
+ # SDATE=`date -d "$TIME tomorrow" +%Y/%m/%d`
+ #fi
+ if [ $DATE -lt $TODAY ]; then
+ DATE=`expr $DATE + 10000`
+ SDATE=`expr $SDATE + 10000`
+ else
+ TIME=""
+ fi
fi
if [ "x$DATE" != x ]; then
RETSTAT=0
--- bin/reminder.~587~ 2016-12-14 07:33:13.033590868 -0800
+++ bin/reminder 2017-01-02 16:11:30.235814949 -0800
@@ -21,30 +21,51 @@
ONTTY=yes
fi
mkdir -p $RHOME/lib/reminder
-for i in $RHOME/lib/reminder/[a-z]*[a-z]
+for i in $RHOME/lib/reminder/[a-z]*[a-z] \
+ $RHOME/lib/reminder/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
do
if [ ! -f "$i" ]; then
continue
fi
j=`basename $i`
- if expr "$j" : '.*\.' >/dev/null \
- || [ "x$j" = "xtriggers" -o "x$j" = "xyesterday" \
- -o "x$j" = "xevening" -o "x$j" = "xnoon" \
- -o "x$j" = "xmorning" ]; then
- continue
- fi
- lockfile -l60 $i.lock
- mv $i $i.$$
- echo processing "$i"...
- /bin/rm -f $i.lock
- if reminder $j <$i.$$ && rm $i.$$; then
- :
- else
- RETSTAT=$?
+ if expr "$j" : '[a-z]' >/dev/null; then
+ if expr "$j" : '.*\.' >/dev/null || [ "x$j" = "xtriggers" ]
+ then
+ continue
+ fi
+ if [ "x$j" = "xyesterday" \
+ -o "x$j" = "xevening" -o "x$j" = "xnoon" \
+ -o "x$j" = "xmorning" ]; then
+ if [ ! -f $RHOME/lib/reminder/"$TIME" ] ||
+ [ `date -r $RHOME/lib/reminder/"$TIME" +%Y%m%d` -ge $TODAY ]
+ then
+ continue
+ fi
+ j=now
+ fi
lockfile -l60 $i.lock
- mv $i.$$ $i
- echo reminder: could not process "$i" 2>/dev/null
+ mv $i $i.$$
+ BASEFILE=$i.$$
+ export BASEFILE
+ echo processing "$i"...
/bin/rm -f $i.lock
+ if reminder $j <$i.$$ && rm $i.$$; then
+ :
+ else
+ RETSTAT=$?
+ lockfile -l60 $i.lock
+ mv $i.$$ $i
+ echo reminder: could not process "$i" 2>/dev/null
+ /bin/rm -f $i.lock
+ fi
+ unset BASEFILE
+ elif [ "x$PID" = x ]; then
+ if reminder "$j" </dev/null; then
+ :
+ else
+ RETSTAT=$?
+ echo reminder: could not process "$i" 2>/dev/null
+ fi
fi
done
if [ "x$1" = xnow ]; then
@@ -64,6 +85,9 @@
"$RHOME"/notes/tasks
/bin/rm -f "$RHOME"/notes/tasks.lock
fi
+ if [ "x$PID" = x ]; then
+ /bin/rm /tmp/reminder.$HOSTNAME
+ fi
exit
fi
. $0.calctime
@@ -78,9 +102,11 @@
OLDFILE=$FILE
EXCLUDE=/dev/null
touch /tmp/reminder.repeated.tmp.$$ /tmp/reminder.hbday.tmp.$$
-if [ "x$TIME" = xnoon -a -f $RHOME/cron/noon.last \
- -a `date -r $RHOME/cron/noon.last +%Y%m%d%H%M` -ge `date +%Y%m%d1200` ]; then
- TIME=evening
+if [ "x$TIME" = xnoon ]; then
+ if [ -f $RHOME/cron/noon.last ] &&
+ [ `date -r $RHOME/cron/noon.last +%Y%m%d%H%M` -ge `date +%Y%m%d1200` ]; then
+ TIME=evening
+ fi
fi
NEWTIMEFILE=""
SAMEFILE=no
@@ -94,21 +120,6 @@
elif [ "x$TIME" != xweek -a "x$TIME" != xmonth -a "x$DATE" = "x$TODAY" ]; then
FILE="$RHOME"/notes/tasks
elif [ "x$DATE" != x ]; then
- FILE=$RHOME/lib/reminder/$DATE
- SAMEFILE=yes
- echo "BANNER %" >/tmp/reminder.remind
- PHATDATE=`date '+%b %d %Y' -d $DATE`
- HAPPYTODAY=""
- if [ $TODAY = "$DATE" ]; then
- HAPPYTODAY=";/^Happy /p;/^HAPPY /p"
- fi
- hbday -hbe `perl -we 'use Date::Parse;$t2=str2time("'"$DATE"'");$t1=time;print int(($t2-$t1)/86400+1)'` \
- | sed -n '/^Coming up:/,$p'"$HAPPYTODAY" \
- | sed -e '/^Coming up:/d;s,in [1-9][0-9]* days*,,;s,\. *(tomorrow),,;s,!!!$,,;s,\. *()$,,;s,^Happy ,celebrate ,;s,tomorrow,,;s,^HAPPY \([^ ]* \)\?BIRTHDAY \(.*\)$,celebrate \2'"'"'s \1birthday,;s,^......: ,celebrate,' \
- | tee /tmp/reminder.hbday.tmp.$$ \
- | sed -n 's,$,%,;s,^,'"$PHATDATE"' MSG ,p' \
- >>/tmp/reminder.remind
- sed -e '/ MS[GF] /{s,$,%,}' $RHOME/.remind >>/tmp/reminder.remind
if [ "x$TIME" = xweek -o "x$TIME" = xmonth ]; then
TODO="cat"
if [ -f /var/tmp/lynx/current ]; then
@@ -159,8 +170,26 @@
/bin/rm /tmp/reminder.week.nonrepeating
I=`expr $I + 1`
done
+ if [ "x$PID" = x ]; then
+ /bin/rm /tmp/reminder.$HOSTNAME
+ fi
exit
fi
+ FILE=$RHOME/lib/reminder/$DATE
+ SAMEFILE=yes
+ echo "BANNER %" >/tmp/reminder.remind
+ PHATDATE=`date '+%b %d %Y' -d $DATE`
+ HAPPYTODAY=""
+ if [ $TODAY = "$DATE" ]; then
+ HAPPYTODAY=";/^Happy /p;/^HAPPY /p"
+ fi
+ hbday -hbe `perl -we 'use Date::Parse;$t2=str2time("'"$DATE"'");$t1=time;print int(($t2-$t1)/86400+1)'` \
+ | sed -n '/^Coming up:/,$p'"$HAPPYTODAY" \
+ | sed -e '/^Coming up:/d;s,in [1-9][0-9]* days*,,;s,\. *(tomorrow),,;s,!!!$,,;s,\. *()$,,;s,^Happy ,celebrate ,;s,tomorrow,,;s,^HAPPY \([^ ]* \)\?BIRTHDAY \(.*\)$,celebrate \2'"'"'s \1birthday,;s,^......: ,celebrate,' \
+ | tee /tmp/reminder.hbday.tmp.$$ \
+ | sed -n 's,$,%,;s,^,'"$PHATDATE"' MSG ,p' \
+ >>/tmp/reminder.remind
+ sed -e '/ MS[GF] /{s,$,%,}' $RHOME/.remind >>/tmp/reminder.remind
if [ -s $FILE.exclude ]; then
EXCLUDE=$FILE.exclude
fi
@@ -248,6 +277,9 @@
if [ ! -f "$FILE" ]; then
/bin/rm -f "$FILE.lock" "$FILE.rem.lock"
echo reminder: file never created
+ if [ "x$PID" = x ]; then
+ /bin/rm /tmp/reminder.$HOSTNAME
+ fi
exit 1
fi
perl -w $THIS_DIR/reminder_triggers.pl $RHOME/lib/reminder/triggers "$FILE" \
@@ -316,7 +348,9 @@
read -p "Enter a new time designation: " TIME
else
/bin/rm -f "$FILE.lock" "$FILE.rem.lock"
- /bin/rm /tmp/reminder.$HOSTNAME
+ if [ "x$PID" = x ]; then
+ /bin/rm /tmp/reminder.$HOSTNAME
+ fi
exit 1
fi
done
@@ -464,6 +498,8 @@
fi
lockfile -l60 $i.lock
mv $i $i.$$
+ BASEFILE=$i.$$
+ export BASEFILE
if reminder $j <$i.$$ && rm $i.$$; then
:
else
@@ -471,6 +507,7 @@
mv $i.$$ $i
echo reminder: could not process "$i" 2>/dev/null
fi
+ unset BASEFILE
/bin/rm -f $i.lock
done
for i in $RHOME/lib/reminder/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
@@ -486,7 +523,9 @@
fi
done
unset j
- /bin/rm /tmp/reminder.$HOSTNAME
update_calendar
fi
+if [ "x$PID" = x ]; then
+ /bin/rm /tmp/reminder.$HOSTNAME
+fi
exit $RETSTAT