fix source path.
[puppet_common.git] / manifests / defines / module_dir.pp
1 # common/manifests/defines/module_dir.pp -- create a default directory
2 # for storing module specific information
3 #
4 # Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
5 # See LICENSE for the full license granted to you.
6
7 # A module_dir is a storage place for all the stuff a module might want to
8 # store. According to the FHS, this should go to /var/lib. Since this is a part
9 # of puppet, the full path is /var/lib/puppet/modules/${name}. Every module
10 # should # prefix its module_dirs with its name.
11
12 # By default, the module_dir is loaded from "puppet:///$server/${name}/module_dir". If
13 # that doesn't exist an empty directory is taken as source. The directory is
14 # purged so that modules do not have to worry about removing cruft.
15
16 # Usage:
17 #  module_dir { ["common", "common/dir1", "common/dir2" ]: }
18 define module_dir (
19                 $mode = 0644,
20                 $owner = root,
21                 $group = 0
22         )
23 {
24         $dir = "${module_dir_path}/${name}"
25         if defined(File[$dir]) {
26                 debug("${dir} already defined")
27         } else {
28                 file {
29                         $dir:
30                                 source => [ "puppet://$server/${name}/module_dir", "puppet://$server/common/empty"],
31                                 checksum => mtime,
32                                 # ignore the placeholder
33                                 ignore => '\.ignore', 
34                                 recurse => true, purge => true, force => true,
35                                 mode => $mode, owner => $owner, group => $group;
36                 }
37         }
38 }
39
40 # Use this variable to reference the base path. Thus you are safe from any
41 # changes.
42 $module_dir_path = '/var/lib/puppet/modules'