HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //proc/self/root/proc/self/root/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parameter/path.rb
require 'puppet/parameter'

# This specialized {Puppet::Parameter} handles validation and munging of paths.
# By default, a single path is accepted, and by calling {accept_arrays} it is possible to
# allow an array of paths.
#
class Puppet::Parameter::Path < Puppet::Parameter
  # Specifies whether multiple paths are accepted or not.
  # @dsl type
  #
  def self.accept_arrays(bool = true)
    @accept_arrays = !!bool
  end
  def self.arrays?
    @accept_arrays
  end

  # Performs validation of the given paths.
  # If the concrete parameter defines a validation method, it may call this method to perform
  # path validation.
  # @raise [Puppet::Error] if this property is configured for single paths and an array is given
  # @raise [Puppet::Error] if a path is not an absolute path
  # @return [Array<String>] the given paths
  #
  def validate_path(paths)
    if paths.is_a?(Array) and ! self.class.arrays? then
      fail _("%{name} only accepts a single path, not an array of paths") % { name: name }
    end

    fail(_("%{name} must be a fully qualified path") % { name: name }) unless Array(paths).all? {|path| absolute_path?(path)}

    paths
  end

  # This is the default implementation of the `validate` method.
  # It will be overridden if the validate option is used when defining the parameter.
  # @return [void]
  #
  def unsafe_validate(paths)
    validate_path(paths)
  end

  # This is the default implementation  of `munge`.
  # If the concrete parameter defines a `munge` method, this default implementation will be overridden.
  # This default implementation does not perform any munging, it just checks the one/many paths
  # constraints. A derived implementation can perform this check as:
  # `paths.is_a?(Array) and ! self.class.arrays?` and raise a {Puppet::Error}.
  # @param paths [String, Array<String>] one of multiple paths
  # @return [String, Array<String>] the given paths
  # @raise [Puppet::Error] if the given paths does not comply with the on/many paths rule.
  def unsafe_munge(paths)
    if paths.is_a?(Array) and ! self.class.arrays? then
      fail _("%{name} only accepts a single path, not an array of paths") % { name: name }
    end
    paths
  end
end