-# == Define: concat
-#
# Sets up so that you can use fragments to build a final config file,
#
-# === Options:
-#
-# [*ensure*]
+# @param ensure
# Present/Absent
-# [*path*]
+# @param path
# The path to the final file. Use this in case you want to differentiate
# between the name of a resource and the file path. Note: Use the name you
# provided in the target of your fragments.
-# [*owner*]
+# @param owner
# Who will own the file
-# [*group*]
+# @param group
# Who will own the file
-# [*mode*]
+# @param mode
# The mode of the final file
-# [*warn*]
+# @param show_diff
+# Use metaparam for files to show/hide diffs for reporting when using eyaml
+# secrets. Defaults to true
+# @param warn
# Adds a normal shell style comment top of the file indicating that it is
-# built by puppet
-# [*backup*]
+# built by puppet.
+# Before 2.0.0, this parameter would add a newline at the end of the warn
+# message. To improve flexibilty, this was removed. Please add it explicitely
+# if you need it.
+# @param backup
# Controls the filebucketing behavior of the final file and see File type
# reference for its use. Defaults to 'puppet'
-# [*replace*]
+# @param replace
# Whether to replace a file that already exists on the local system
-# [*order*]
+# @param order
# Select whether to order associated fragments by 'alpha' or 'numeric'.
# Defaults to 'alpha'.
-# [*ensure_newline*]
+# @param ensure_newline
# Specifies whether to ensure there's a new line at the end of each fragment.
# Valid options: 'true' and 'false'. Default value: 'false'.
-# [*validate_cmd*]
+# @param selinux_ignore_defaults
+# @param selrange
+# @param selrole
+# @param seltype
+# @param seluser
+# @param validate_cmd
# Specifies a validation command to apply to the destination file.
# Requires Puppet version 3.5 or newer. Valid options: a string to be passed
# to a file resource. Default value: undefined.
#
-
define concat(
- $ensure = 'present',
- $path = $name,
- $owner = undef,
- $group = undef,
- $mode = '0644',
- $warn = false,
- $force = undef,
- $backup = 'puppet',
- $replace = true,
- $order = 'alpha',
- $ensure_newline = false,
- $validate_cmd = undef,
+ Enum['present', 'absent'] $ensure = 'present',
+ Stdlib::Absolutepath $path = $name,
+ Optional[Variant[String, Integer]] $owner = undef,
+ Optional[Variant[String, Integer]] $group = undef,
+ String $mode = '0644',
+ Variant[Boolean, String] $warn = false,
+ Boolean $show_diff = true,
+ Variant[Boolean, String] $backup = 'puppet',
+ Boolean $replace = true,
+ Enum['alpha','numeric'] $order = 'alpha',
+ Boolean $ensure_newline = false,
+ Optional[String] $validate_cmd = undef,
+ Optional[Boolean] $selinux_ignore_defaults = undef,
+ Optional[String] $selrange = undef,
+ Optional[String] $selrole = undef,
+ Optional[String] $seltype = undef,
+ Optional[String] $seluser = undef,
) {
- validate_re($ensure, '^present$|^absent$')
- validate_absolute_path($path)
- validate_string($owner)
- validate_string($group)
- validate_string($mode)
- if ! (is_string($warn) or $warn == true or $warn == false) {
- fail('$warn is not a string or boolean')
- }
- if ! is_bool($backup) and ! is_string($backup) {
- fail('$backup must be string or bool!')
- }
- validate_bool($replace)
- validate_re($order, '^alpha$|^numeric$')
- validate_bool($ensure_newline)
- if $validate_cmd and ! is_string($validate_cmd) {
- fail('$validate_cmd must be a string')
- }
-
- if $force != undef {
- warning('The $force parameter to concat is deprecated and has no effect.')
- }
-
- $safe_name = regsubst($name, '[/:\n\s]', '_', 'G')
+ $safe_name = regsubst($name, '[/:~\n\s\+\*\(\)@]', '_', 'G')
$default_warn_message = "# This file is managed by Puppet. DO NOT EDIT.\n"
case $warn {
if $ensure == 'present' {
concat_file { $name:
- tag => $safe_name,
- path => $path,
- owner => $owner,
- group => $group,
- mode => $mode,
- replace => $replace,
- backup => $backup,
- order => $order,
- ensure_newline => $ensure_newline,
- validate_cmd => $validate_cmd,
+ tag => $safe_name,
+ path => $path,
+ owner => $owner,
+ group => $group,
+ mode => $mode,
+ selinux_ignore_defaults => $selinux_ignore_defaults,
+ selrange => $selrange,
+ selrole => $selrole,
+ seltype => $seltype,
+ seluser => $seluser,
+ replace => $replace,
+ backup => $backup,
+ show_diff => $show_diff,
+ order => $order,
+ ensure_newline => $ensure_newline,
+ validate_cmd => $validate_cmd,
}
if $_append_header {
concat_fragment { "${name}_header":
+ target => $name,
tag => $safe_name,
content => $warn_message,
order => '0',
}
}
}
-