class tsacha_mail::dkim {

  Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }

  service { 'opendkim':
    ensure => running
  }

  $dkimfolders = [
    "/etc/opendkim",
    "/etc/opendkim/keys",
    "/etc/opendkim/keys/glenn.pro",
    "/etc/opendkim/keys/glenn-s.eu",
    "/etc/opendkim/keys/sharne.eu",
    "/etc/opendkim/keys/terres-creuses.fr",
    "/etc/opendkim/keys/tremoureux.fr"
  ]

  file { $dkimfolders:
    owner   => opendkim,
    group   => opendkim,
    mode    => '0750',
    ensure  => directory,
    notify  => Service['opendkim']
  }

  $dkim_conf = [
    "keys/glenn.pro/default.private",
    "keys/glenn-s.eu/default.private",
    "keys/sharne.eu/default.private",
    "keys/terres-creuses.fr/default.private",
    "keys/tremoureux.fr/default.private",
    "keys/glenn.pro/default.txt",
    "keys/glenn-s.eu/default.txt",
    "keys/sharne.eu/default.txt",
    "keys/terres-creuses.fr/default.txt",
    "keys/tremoureux.fr/default.txt",
  ]

  File {
    ensure => present,
    owner => opendkim,
    group => opendkim,
    mode => '0640',
    notify => Service['opendkim']
  }
  
  file { "/etc/opendkim/SigningTable":
    content => template("tsacha_mail/dkim/SigningTable.erb")
  }

  file { "/etc/opendkim/TrustedHosts":
    content => template("tsacha_mail/dkim/TrustedHosts.erb")
  }

  file { "/etc/opendkim/KeyTable":
    content => template("tsacha_mail/dkim/KeyTable.erb")
  }

  file { "/etc/opendkim.conf":
    content => template("tsacha_mail/dkim/opendkim.conf.erb"),
    owner => root,
    group => root,
    mode => '0644'
  }
  
  $dkim_conf.each |$title| {
    file { "/etc/opendkim/${title}":
      source => "puppet:///modules/tsacha_private/dkim/${title}",
    }
  }

}