ietf-mta-filters
[Top] [All Lists]

Re: [sieve] I-D Action: draft-ietf-sieve-include-07.txt

2011-07-10 21:33:35
On Sat, Jul 9, 2011 at 8:42 AM, Alexey Melnikov
<alexey(_dot_)melnikov(_at_)isode(_dot_)com> wrote:
Barry Leiba wrote:

## 'ISSUE' 3:

I've had a few request and questions from users about having an
optional
include, i.e. an include directive that is skipped without error if
(and
only if) the to-be-included script does not exist. Do you find this a
useful
feature? If yes, is it possible to add this to the main draft now or
should
there be an 'include-optional' extension that adds an ':optional' tag
to
the
include command?


Oh, huh. I suppose at least a hack around this would be an empty script?


Yes, but that will not be adequate in many situations. Do more people
have
thoughts on this?


I would support an ":optional" tag on "include", which would cause an
error NOT to be generated if the included script doesn't exist.  That
should be an easy change to the text, and an easy thing for
implementors to do.


+1. I would like to see this being added as well.

Here's the language I came up with, and updated ABNF. I realized that
the way the ABNF was currently written, the tagged parameters to
include had a specific order. I don't think this was intentional, but
was just an artifact of there having been only one parameter when the
ABNF was first written.

=== OLD ===

3.2.  Control Structure include

         Usage:   include [LOCATION] [ONCE] <value: string>
               LOCATION = ":personal" / ":global"
               ONCE = ":once"

...

   The "location" parameter MUST default to ":personal" if not
   specified.  The "location" has the following meanings:

=== NEW ===

3.2.  Control Structure include

         Usage:   include *[PARAMETERS] <value: string>
                       PARAMETERS = LOCATION / :once / :optional
                       LOCATION = :personal / :global
...

   The "location" parameter MUST default to ":personal" if not
   specified.  The "location" parameter MUST NOT be specified more than
   once.  The "location" has the following meanings:

...

   The ":optional" parameter indicates that the script may be missing.
   Ordinarily, an implementation MUST generate an error at runtime if an
   include command specifies a script that does not exist.  When
   ":optional" is specified, implementations MUST NOT generate an error
   for a missing script, and MUST continue as if the include command had
   not been present.


I realize that the new ABNF allows more than one location parameter to
by syntactically valid, so I added text that it cannot be specified
more than once. I hope that's reasonable; if not, better ABNF is
welcome.

Given that the pre-meeting embargo begins at 17:00 Pacific time on
Monday (tomorrow), I'm going to post the text above now, and we can
discuss the details during the week.

Cheers,
Aaron
_______________________________________________
sieve mailing list
sieve(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/sieve