summaryrefslogtreecommitdiff
path: root/manifests/defines/module_dir.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/defines/module_dir.pp')
-rw-r--r--manifests/defines/module_dir.pp41
1 files changed, 41 insertions, 0 deletions
diff --git a/manifests/defines/module_dir.pp b/manifests/defines/module_dir.pp
new file mode 100644
index 0000000..73f5d75
--- /dev/null
+++ b/manifests/defines/module_dir.pp
@@ -0,0 +1,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://$server/modules/${name}/modules_dir", "puppet://$server/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 }
+}