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