46 lines
1.8 KiB
Puppet
46 lines
1.8 KiB
Puppet
# Puts a file fragment into a directory previous setup using concat
|
|
#
|
|
# OPTIONS:
|
|
# - target The file that these fragments belong to
|
|
# - content If present puts the content into the file
|
|
# - source If content was not specified, use the source
|
|
# - order By default all files gets a 10_ prefix in the directory
|
|
# you can set it to anything else using this to influence the
|
|
# order of the content in the file
|
|
# - ensure Present/Absent or destination to a file to include another file
|
|
# - mode Mode for the file
|
|
# - owner Owner of the file
|
|
# - group Owner of the file
|
|
# - backup Controls the filebucketing behavior of the final file and
|
|
# see File type reference for its use. Defaults to 'puppet'
|
|
define concat::fragment($target, $content=undef, $source=undef, $order=10, $ensure = 'present', $mode = '0644', $owner = $::id, $group = $concat::setup::root_group, $backup = 'puppet') {
|
|
$safe_name = regsubst($name, '[/\n]', '_', 'GM')
|
|
$safe_target_name = regsubst($target, '[/\n]', '_', 'GM')
|
|
$concatdir = $concat::setup::concatdir
|
|
$fragdir = "${concatdir}/${safe_target_name}"
|
|
|
|
# if content is passed, use that, else if source is passed use that
|
|
# if neither passed, but $ensure is in symlink form, make a symlink
|
|
case $ensure {
|
|
'', 'absent', 'present', 'file', 'directory': {
|
|
if ! ($content or $source) {
|
|
crit('No content, source or symlink specified')
|
|
}
|
|
}
|
|
default: {
|
|
# do nothing, make puppet-lint happy
|
|
}
|
|
}
|
|
|
|
file{"${fragdir}/fragments/${order}_${safe_name}":
|
|
ensure => $ensure,
|
|
mode => $mode,
|
|
owner => $owner,
|
|
group => $group,
|
|
source => $source,
|
|
content => $content,
|
|
backup => $backup,
|
|
alias => "concat_fragment_${name}",
|
|
notify => Exec["concat_${target}"]
|
|
}
|
|
}
|