Pigeonhole Sieve: File Location for Sieve Scripts
=================================================

The 'file' <location type> [Pigeonhole.Sieve.Configuration.txt] is used to
retrieve Sieve scripts from the file system. This is the default type if the
type specifier is omitted from the location specification. The location can
either point to a directory or to a regular file. If the location points to a
directory, a script called 'name' is retrieved by reading a file from that
directory with the file name 'name.sieve'.

When this location type is involved in a 'sieve_before' or 'sieve_after' script
sequence and the location points to a directory, all files in that directory
with a '.sieve' extension are part of the sequence. The sequence order of the
scripts in that directory is determined by the file names, using a normal 8bit
per-character comparison.

Unless overridden using the ';bindir=<path>' location option, compiled binaries
for scripts retrieved from the 'file' location type are by default stored in
the same directory as where the script file was found if possible.

Configuration
-------------

The script location syntax is specified as follows:

---%<-------------------------------------------------------------------------
location = file:<path>[;<option>[=<value>][;...]]
---%<-------------------------------------------------------------------------

The following additional options are recognized:

active=<path> :
  When <ManageSieve> [Pigeonhole.ManageSieve.txt] is used, one script in the
  storage can be active; i.e., evaluated at delivery. For the 'file' location
  type, the active script in the storage directory is pointed to by a symbolic
  link. This option configures where this symbolic link is located. If the
  'file' location path points to a regular file, this setting has no effect
  (andManageSieve cannot be used).

Example
-------

---%<-------------------------------------------------------------------------
plugin {
        ...
  sieve = file:~/sieve;active=~/.dovecot.sieve

  sieve_default = file:/var/lib/dovecot/;name=default
}
---%<-------------------------------------------------------------------------

On <Pigeonhole.Sieve.txt> 2.2.13-12~deb8u4 combined with <ManageSieve>
[Pigeonhole.ManageSieve.txt] on Debian the active option didn't worked and it
lead to following errors/warnings:

---%<-------------------------------------------------------------------------
Warning: sieve-storage: Active sieve script symlink /var/mail/xxx/xxx/xxx/sieve
is no symlink
---%<-------------------------------------------------------------------------

---%<-------------------------------------------------------------------------
Error: sieve: sieve file backend: invalid option `active=~/.dovecot.sieve'
---%<-------------------------------------------------------------------------

---%<-------------------------------------------------------------------------
managesieve(<MAILBOX>): Error: sieve-storage: Active sieve script file
'/var/mail/xxx/xxx/xxx/sieve' is no symlink nor a regular file. This needs to
be fixed manually.
---%<-------------------------------------------------------------------------

Therefore we just used it without the active option as follows and then it
worked:

(We adjusted of course the file paths to our needs)

---%<-------------------------------------------------------------------------
plugin {
        ...
  sieve = file:~/sieve;

  sieve_default = file:/var/lib/dovecot/;name=default
}
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2019-06-19 12:42)
