+++ /dev/null
-# See README.md for usage information
-define apache::custom_config (
- $ensure = 'present',
- $confdir = $::apache::confd_dir,
- $content = undef,
- $priority = '25',
- $source = undef,
- $verify_command = $::apache::params::verify_command,
- $verify_config = true,
-) {
-
- if $content and $source {
- fail('Only one of $content and $source can be specified.')
- }
-
- if $ensure == 'present' and ! $content and ! $source {
- fail('One of $content and $source must be specified.')
- }
-
- validate_re($ensure, '^(present|absent)$',
- "${ensure} is not supported for ensure.
- Allowed values are 'present' and 'absent'.")
-
- validate_bool($verify_config)
-
- if $priority {
- $priority_prefix = "${priority}-"
- } else {
- $priority_prefix = ''
- }
-
- ## Apache include does not always work with spaces in the filename
- $filename_middle = regsubst($name, ' ', '_', 'G')
- $filename = "${priority_prefix}${filename_middle}.conf"
-
- if ! $verify_config or $ensure == 'absent' {
- $notifies = Class['Apache::Service']
- } else {
- $notifies = undef
- }
-
- file { "apache_${name}":
- ensure => $ensure,
- path => "${confdir}/${filename}",
- content => $content,
- source => $source,
- require => Package['httpd'],
- notify => $notifies,
- }
-
- if $ensure == 'present' and $verify_config {
- exec { "service notify for ${name}":
- command => $verify_command,
- subscribe => File["apache_${name}"],
- refreshonly => true,
- notify => Class['Apache::Service'],
- before => Exec["remove ${name} if invalid"],
- }
-
- exec { "remove ${name} if invalid":
- command => "/bin/rm ${confdir}/${filename}",
- unless => $verify_command,
- subscribe => File["apache_${name}"],
- refreshonly => true,
- }
- }
-}