procmail
[Top] [All Lists]

Re: Working sms time check?

2016-06-02 00:31:47
On Jun 1, 2016, at 10:28 AM, udi M 
<uuddii(_at_)eng(_dot_)tau(_dot_)ac(_dot_)il> wrote:
On 01/06/16 16:41, @lbutlr wrote:
I think I have this working:

:0
* LISTNAME ??^^procmail^^
{
  SMS_TIME=`find . -mtime +24h -maxdepth 1 -name .SMS_$LISTNAME | sed 
's/^.......//'`
  :0
  * ! 9876543210^0 SMS_TIME ?? ^^$LISTNAME^^
  {
    LOG="touch .SMS_$LISTNAME"
    SMS_TIME=`touch .SMS_$LISTNAME`
    INCLUDERC=$HOME/.sms_procmail
    SWITCHRC
  }
  :0E
  {
    SWITCHRC
  }
}

LISTNAME is generated in another script, based on Sean’s script to extract 
the list name from a  variety of headers.

I know find is expensive, but the whole point of this is to alert me when 
there is a new post in a group that gets few posts, but not to alert me to 
every single post in case a thread gets activity for a day or two, so in 
theory these find’s should be firing quite rarely. One list, for example, I 
haven’t gotten posts from since early this year, but I don’t want to miss 
them.

I do not understand.  From the part that you show us:  if you get,
from the list 'procmail',  49 messages in  one hour - then  you will
get only one SMS, but, find(1) will be run 49 times in this hour, isn’t?

Yes. But that has never happened in the last… 15 years? Also, procmail is not 
actually one of the lists I am tracking, these are even lower volume lists than 
this one. I setup procmail (and another list) as tests.

If I have the logic right then if the find doesn’t match a file (either 
because the file is less than 24 hours old or because it does not exist) the 
file will be touched, the SMS notification script will load, and the script 
will pop back; otherwise if the file exists and is less than 24 hour hours 
old the script will simply pop back.


The trigger to check and send the SMS is new-message from the same list.
I can imagine a scenario where you send question;  The answer came in less 
then
24 hours;  Are you going to wait two weeks until somebody else will send 
another
message to the list?    Maybe trigger the SMS checking by crontab(1)  is 
better?

These aren’t issues.

The issue is that the find does not fill the variable.

SMS_TIME=`/usr/bin/find . -mtime +24h -maxdepth 1 -name .SMS_$LISTNAME | 
/usr/bin/sed 's/^.......//‘`

ALWAYS ends up with an empty SMS_TIME regardless of the time stamp on the file.


-- 
C code. C code run. Run, code, run.


____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)de
http://mailman.rwth-aachen.de/mailman/listinfo/procmail