aboutsummaryrefslogtreecommitdiff
path: root/manifests/defines/module_dir.pp
blob: 613cc49fd2247c50b013583621c294b8f3e5efb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# common/manifests/defines/modules_dir.pp -- create a default directory
# for storing module specific information
#
# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
# See LICENSE for the full license granted to you.

# Usage:
# include common::moduledir
# module_dir { ["common", "common/dir1", "common/dir2" ]: }
#
# You may refer to a file in module_dir by using :
# file { "${common::moduledir::module_dir_path}/somedir/somefile": }

define module_dir (
        $mode = 0644, $owner = root, $group = 0
    )
{
    include common::moduledir
    $dir = "${common::moduledir::module_dir_path}/${name}"
    if defined(File[$dir]) {
        debug("${dir} already defined")
    } else {
        file {
            $dir:
                source => [ "puppet:///modules/${name}/modules_dir", "puppet:///modules/common/empty"],
                checksum => mtime,
                # ignore the placeholder
                ignore => '.ignore',
                recurse => true, purge => true, force => true,
                mode => $mode, owner => $owner, group => $group;
        }
    }
}

# alias for compatibility
define modules_dir (
        $mode = 0644, $owner = root, $group = 0
    )
{
  module_dir { $name: mode => $mode, owner => $owner, group => $group }
}