fix whitespace (remove tabs & trailing whitespace)
[puppet_common.git] / manifests / defines / config_file.pp
1 # common/manifests/defines/config_file.pp -- create a config file with default permissions
2 # Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
3 # See LICENSE for the full license granted to you.
4
5 # Usage:
6 # config_file { filename:
7 #     content => "....\n",
8 # }
9 #
10 # Examples:
11 #
12 # To create the file /etc/vservers/${vs_name}/context with specific
13 # content:
14 #
15 # config_file { "/etc/vservers/${vs_name}/context":
16 #              content => "${context}\n",
17 #              notify => Exec["vs_restart_${vs_name}"],
18 #              require => Exec["vs_create_${vs_name}"];
19 # }
20 #
21 # To create the file /etc/apache2/sites-available/munin-stats with the
22 # content pulled from a template:
23 #
24 # config_file { "/etc/apache2/sites-available/munin-stats":
25 #              content => template("apache/munin-stats"),
26 #              require => Package["apache2"],
27 #              notify => Exec["reload-apache2"]
28 # }
29
30 define config_file ($content = '', $source = '', $ensure = 'present') {
31     file { $name:
32         ensure => $ensure,
33         # keep old versions on the server
34         backup => server,
35         # default permissions for config files
36         mode => 0644, owner => root, group => 0,
37         # really detect changes to this file
38         checksum => md5,
39     }
40
41     case $source {
42         '': { }
43         default: { File[$name] { source => $source } }
44     }
45
46     case $content {
47         '': { }
48         default: { File[$name] { content => $content } }
49     }
50
51 }
52
53