[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

change reminder script



--- 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




Why do you want this page removed?