migrate away from old postgres_backup_server role
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / manifests / fragment.pp
index 9cfae66..e30732c 100644 (file)
@@ -1,52 +1,34 @@
-# == Define: concat::fragment
-#
 # Creates a concat_fragment in the catalogue
 #
-# === 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*]
+# @param target The file that these fragments belong to
+# @param content If present puts the content into the file
+# @param source If content was not specified, use the source
+# @param 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
 #
 define concat::fragment(
-    $target,
-    $ensure  = undef,
-    $content = undef,
-    $source  = undef,
-    $order   = '10',
+  String                             $target,
+  Optional[String]                   $content = undef,
+  Optional[Variant[String, Array]]   $source  = undef,
+  Variant[String, Integer]           $order   = '10',
 ) {
-  validate_string($target)
-
-  if $ensure != undef {
-    warning('The $ensure parameter to concat::fragment is deprecated and has no effect.')
-  }
-
-  validate_string($content)
-  if !(is_string($source) or is_array($source)) {
-    fail('$source is not a string or an Array.')
-  }
+  $resource = 'Concat::Fragment'
 
-  if !(is_string($order) or is_integer($order)) {
-    fail('$order is not a string or integer.')
-  } elsif (is_string($order) and $order =~ /[:\n\/]/) {
-    fail("Order cannot contain '/', ':', or '\n'.")
+  if (is_string($order) and $order =~ /[:\n\/]/) {
+    fail("${resource}['${title}']: 'order' cannot contain '/', ':', or '\n'.")
   }
 
   if ! ($content or $source) {
     crit('No content, source or symlink specified')
   } elsif ($content and $source) {
-    fail("Can't use 'source' and 'content' at the same time")
+    fail("${resource}['${title}']: Can't use 'source' and 'content' at the same time.")
   }
 
-  $safe_target_name = regsubst($target, '[/:\n\s]', '_', 'GM')
+  $safe_target_name = regsubst($target, '[/:~\n\s\+\*\(\)@]', '_', 'GM')
 
   concat_fragment { $name:
+    target  => $target,
     tag     => $safe_target_name,
     order   => $order,
     content => $content,