Update concat
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / manifests / init.pp
index 5bf53fc..0a19b34 100644 (file)
@@ -1,79 +1,68 @@
-# == 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 {
@@ -93,20 +82,27 @@ define concat(
 
   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',
@@ -121,4 +117,3 @@ define concat(
     }
   }
 }
-