procmail
[Top] [All Lists]

Re: Nested recipes... (sorry if this is sent twice.. )

2005-01-22 17:43:49
Hey Dallman.. thanks for the reply! :)

Dallman Ross said the following on 1/22/2005 7:15 PM:

"Skipped" in the log means a syntax problem.  Usually an action
line that has become separated from any valid recipe.
*nod* Ok...

Leaving aside for the moment the awkwardly labarynthine construction
you have devised where the outside recipe with its lone condition tests
for ^TO_root@, leading to a nested recipe with its lone condition
testing for ^TO_root(_at_)wingfoot{an_unquoted_dot_isany_one_char}org;
we in any case now have an assignment (LOG=) -- which is not a
recipe, per se, but stands on its own; followed by the line ".Root/".
(Yes, I had caught the "." already and substituted "\." just after
sending this email...)

followed by optional flags, an optional lockfile colon, and an
optional lockfile name and lockextension name; (b) an optional
condition or conditions; and (c) an action line.  You don't
have that here, and procmail doesn't know what you are trying to
do.  Hence, "Skipped."
Ok.. so more like:

:0
* ^TO_root@(wingfoot\.org|databasement\.org)
{
   :0
   * ^TO_root(_at_)wingfoot\(_dot_)org
   {
      LOG="(Wing Root Mail)$NL"
      :0
      .Wingfoot.Root/
   }
   :0
   * ^TO_root(_at_)databasement\(_dot_)org
   {
      LOG="(Databasement Root Mail)$NL"
      :0
      .Databasement.Root/
   }
}

But now let's revisit the logic of the presentation.  The first, outside
recipe is completely superfluous.  Let's analogize: you go into a
restaurant and see a woman who reminds you of your first girlfriend,
from fifteen years ago.  You're not sure, though, so you ask her:
"Mary?"  But before she can react at all, you say, "Mary Smith?"
Ok.. so you're saying it's not practical/feasible to do something along
these lines:

:0
* ^List-Post:(_dot_)*(_at_)freebsd(_dot_)org
{
   :0
   * ^List-Post:.*advocacy.*
   {
      LOG="(FreeBSD Advocacy Mailing List)$NL"
      :0
      .FreeBSD/Advocacy/
   }
   :0
   * ^List-Post:.*chat.*
   {
      LOG="(FreeBSD Chat Mailing List)$NL"
      :0
      .FreeBSD/Chat/
   }
   :0
   * ^List-Post.*questions.*
   {
      LOG="(FreeBSD Questions Mailing List)$NL"
      :0
      .FreeBSD/Questions/
   }
}

Well.  Since you didn't wait for a reaction to "Mary?" its utterance
did you no good at all.  You might as well have just asked "Mary Smith?"
to start with.  :-)  (Then she still didn't react, and you suddenly
remembered that your first girlfriend's last name was Jones, not Smith.
So you now ask, "Mary Jones?")  :-)

I was under (I guess the wrong?) assumption that pre-filtering Made Sense? Have the generic-level filter, and then drill it down from there, in the hopes that well, if something doesn't pass the first * ^List-Post:(_dot_)*(_at_)freebsd(_dot_)org line, it'll skip everything nested underneath and go to the next top-level recipe?

I'm just kidding around, as you I hope can tell.  It's late, and I
could use a little levity.  But anyway: drop the outside recipe, and
fix the inside ones.
:) Ok.. So I'm taking from this that there's no sense in pre-filtering,
and there are no benefits therein? I was hoping there would be benefits
to grouping rules together, like speed or efficiency.. :-/

Anywho.. thanks much, Dallman :)

Best,
--Glenn

--
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
          ~Benjamin Franklin, Historical Review of Pennsylvania, 1759

____________________________________________________________
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