aboutsummaryrefslogtreecommitdiff
path: root/manifests/file.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/file.pp')
-rw-r--r--manifests/file.pp38
1 files changed, 34 insertions, 4 deletions
diff --git a/manifests/file.pp b/manifests/file.pp
index ec67f2c..3628188 100644
--- a/manifests/file.pp
+++ b/manifests/file.pp
@@ -2,18 +2,37 @@
#
# Parameters:
#
+# [*ensure*]: file type, default file.
+# [*owner*]: file owner, default tftp.
+# [*group*]: file group. default tftp.
+# [*mode*]: file mode, default 0644 (puppet will change to 0755 for directories).
+# [*content*]: file content.
+# [*source*]: file source, defaults to puppet*]:///module/${caller_module_name}/${name} for files without content.
+# [*recurse*]: directory recurse, default false.
+# [*purge*]: directory recurse and purge.
+# [*replace*]: replace directory with file or symlink, default undef,
+# [*recurselimit*]: directory recurse limit, default undef,
+#
# Actions:
#
-# Requires:
+# Deploy files into the tftp directory.
#
# Usage:
#
+# tftp::file { 'pxelinux.0':
+# source => 'puppet:///modules/acme/pxelinux.0',
+# }
+#
+# tftp::file { 'pxelinux.cfg':
+# ensure => directory,
+# }
+#
define tftp::file (
$ensure = file,
- $recurse = false,
$owner = 'tftp',
$group = 'tftp',
$mode = '0644',
+ $recurse = false,
$purge = undef,
$replace = undef,
$recurselimit = undef,
@@ -22,17 +41,28 @@ define tftp::file (
) {
include 'tftp'
+ if $source {
+ $source_real = $source
+ } elsif $ensure != 'directory' and ! $content {
+ if $caller_module_name {
+ $mod = $caller_module_name
+ } else {
+ $mod = $module_name
+ }
+ $source_real = "puppet:///modules/${mod}/${name}"
+ }
+
file { "${tftp::directory}/${name}":
ensure => $ensure,
- recurse => $recurse,
owner => $owner,
group => $group,
mode => $mode,
+ recurse => $recurse,
purge => $purge,
replace => $replace,
recurselimit => $recurselimit,
content => $content,
- source => $source,
+ source => $source_real,
require => Class['tftp'],
}
}