summaryrefslogtreecommitdiff
path: root/manifests/sieve.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/sieve.pp')
-rw-r--r--manifests/sieve.pp42
1 files changed, 42 insertions, 0 deletions
diff --git a/manifests/sieve.pp b/manifests/sieve.pp
new file mode 100644
index 0000000..4b5068d
--- /dev/null
+++ b/manifests/sieve.pp
@@ -0,0 +1,42 @@
+class dovecot::sieve {
+ include ::dovecot
+ package{'dovecot-sieve':
+ ensure => installed,
+ before => Service['dovecot'],
+ }
+
+ file{'/var/lib/dovecot-sieve':
+ ensure => directory,
+ owner => root, group => 0, mode => 0644;
+ }
+ file{'/var/lib/dovecot-sieve/global':
+ source => [ "puppet://$server/modules/site-dovecot/sieve/${fqdn}/global/",
+ "puppet://$server/modules/site-dovecot/sieve/global/",
+ "puppet://$server/modules/site/sieve/${operatingsystem}/global/",
+ "puppet://$server/modules/site/sieve/global/",
+ "puppet://$server/modules/common/empty/" ],
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ notify => Exec['compile_global_sieve'],
+ owner => root, group => root, mode => 0644;
+ }
+ file{'/var/lib/dovecot-sieve/default.sieve':
+ source => [ "puppet://$server/modules/site-dovecot/sieve/${fqdn}/default.sieve",
+ "puppet://$server/modules/site-dovecot/sieve/default.sieve",
+ "puppet://$server/modules/site/sieve/${operatingsystem}/default.sieve",
+ "puppet://$server/modules/site/sieve/default.sieve" ],
+ notify => Exec['compile_default_sieve'],
+ owner => root, group => root, mode => 0644;
+ }
+
+ exec{'compile_default_sieve':
+ command => 'sievec /var/lib/dovecot-sieve/default.sieve',
+ refreshonly => true,
+ }
+ exec{'compile_global_sieve':
+ command => 'sievec /var/lib/dovecot-sieve/global/',
+ refreshonly => true,
+ }
+}