more messing about
[mirror/dsa-puppet.git] / modules / apache2 / manifests / site.pp
1 define apache2::site (
2         $config = undef,
3         $template = false,
4         $ensure = present,
5         $site = undef
6 ) {
7
8         include apache2
9
10         if ! ($config or $template) {
11                 err ( "No configuration found for ${name}" )
12         }
13
14         if $site {
15                 $base = $site
16         } else {
17                 $base = $name
18         }
19
20         $target = "/etc/apache2/sites-available/${base}"
21
22         $link_target = $ensure ? {
23                 present => $target,
24                 absent  => absent,
25                 default => err ( "Unknown ensure value: '$ensure'" ),
26         }
27
28         case $template {
29                 false: {
30                         file { $target:
31                                 ensure  => $ensure,
32                                 source  => $config,
33                                 require => Package['apache2'],
34                                 notify  => Service['apache2'],
35                         }
36                 }
37                 default: {
38                         file { $target:
39                                 ensure  => $ensure,
40                                 content => template($template),
41                                 require => Package['apache2'],
42                                 notify  => Service['apache2'],
43                         }
44                 }
45         }
46
47         if $ensure == present {
48                 file { "/etc/apache2/sites-enabled/${name}":
49                         ensure => link,
50                         target => $link_target,
51                         notify => Service['apache2'],
52                 }
53         } else {
54                 file { "/etc/apache2/sites-enabled/${name}":
55                         ensure => absent,
56                         notify => Service['apache2'],
57                 }
58         }
59 }