Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 031bf26128
Fetching contributors…

Cannot retrieve contributors at this time

file 51 lines (48 sloc) 2.179 kb
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 42 43 44 45 46 47 48 49 50 51
# 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='', $source='', $order=10, $ensure = "present", $mode = 0644, $owner = root, $group = $concat::setup::root_group, $backup = "puppet") {
    $safe_name = regsubst($name, '/', '_', 'G')
    $safe_target_name = regsubst($target, '/', '_', 'G')
    $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 $content {
        "": {
                case $source {
                        "": {
                                case $ensure {
                                    "", "absent", "present", "file", "directory": {
                                        crit("No content, source or symlink specified")
                                    }
                                }
                            }
                   default: { File{ source => $source } }
                }
            }
        default: { File{ content => $content } }
    }

    file{"${fragdir}/fragments/${order}_${safe_name}":
        mode => $mode,
        owner => $owner,
        group => $group,
        ensure => $ensure,
        backup => $backup,
        alias => "concat_fragment_${name}",
        notify => Exec["concat_${target}"]
    }
}

# vi:tabstop=4:expandtab:ai
Something went wrong with that request. Please try again.