Skip to content
Snippets Groups Projects
Select Git revision
  • 1a44acf48bddf127488a727cd74f32ee9c378ffa
  • master default protected
  • ll-workflow
  • alc-scindage-donnees-pj
  • b24
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

NewOseForm.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    virtual.pp 1.83 KiB
    # == Definition: postfix::virtual
    #
    # Manages content of the /etc/postfix/virtual map.
    #
    # === Parameters
    #
    # [*name*]        - name of address postfix will lookup. See virtual(8).
    # [*destination*] - where the emails will be delivered to. See virtual(8).
    # [*ensure*]      - present/absent, defaults to present.
    # [*file*]        - A string defining the location of the pre-hash map.
    #
    # === Requires
    #
    # - Class["postfix"]
    # - Postfix::Hash["/etc/postfix/virtual"]
    # - Postfix::Config["virtual_alias_maps"]
    # - augeas
    #
    # === Examples
    #
    #   node "toto.example.com" {
    #
    #     include postfix
    #
    #     postfix::hash { "/etc/postfix/virtual":
    #       ensure => present,
    #     }
    #     postfix::config { "virtual_alias_maps":
    #       value => "hash:/etc/postfix/virtual"
    #     }
    #     postfix::virtual { "user@example.com":
    #       ensure      => present,
    #       destination => "root",
    #     }
    #   }
    #
    define postfix::virtual (
      String                    $destination,
      Stdlib::Absolutepath      $file='/etc/postfix/virtual',
      Enum['present', 'absent'] $ensure='present'
    ) {
      include ::postfix::augeas
    
      case $ensure {
        'present': {
          $changes = [
            "set pattern[. = '${name}'] '${name}'",
            # TODO: support more than one destination
            "set pattern[. = '${name}']/destination '${destination}'",
          ]
        }
    
        'absent': {
          $changes = "rm pattern[. = '${name}']"
        }
    
        default: {
          fail "\$ensure must be either 'present' or 'absent', got '${ensure}'"
        }
      }
    
      augeas {"Postfix virtual - ${name}":
        incl    => $file,
        lens    => 'Postfix_Virtual.lns',
        changes => $changes,
        require => Augeas::Lens['postfix_virtual'],
      }
    
      if defined(Package['postfix']) {
        Package['postfix'] -> Postfix::Virtual[$title]
      }
    
      if defined(Postfix::Hash[$file]) {
        Postfix::Virtual[$title] ~> Postfix::Hash[$file]
      }
    }