Sha256: b34cfd17c704a3cc3b7ff98f29e590201c93eeab2199f7dc6313095a537f9452

Contents?: true

Size: 1.32 KB

Versions: 32

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

# Loads a binary file from a module or file system and returns its contents as a `Binary`.
# The argument to this function should be a `<MODULE NAME>/<FILE>`
# reference, which will load `<FILE>` from a module's `files`
# directory. (For example, the reference `mysql/mysqltuner.pl` will load the
# file `<MODULES DIRECTORY>/mysql/files/mysqltuner.pl`.)
#
# This function also accepts an absolute file path that allows reading
# binary file content from anywhere on disk.
#
# An error is raised if the given file does not exists.
#
# To search for the existence of files, use the `find_file()` function.
#
# - since 4.8.0
#
# @since 4.8.0
#
Puppet::Functions.create_function(:binary_file, Puppet::Functions::InternalFunction) do
  dispatch :binary_file do
    scope_param
    param 'String', :path
  end

  def binary_file(scope, unresolved_path)
    path = Puppet::Parser::Files.find_file(unresolved_path, scope.compiler.environment)
    unless path && Puppet::FileSystem.exist?(path)
      # TRANSLATORS the string "binary_file()" should not be translated
      raise Puppet::ParseError, _("binary_file(): The given file '%{unresolved_path}' does not exist") % { unresolved_path: unresolved_path }
    end

    Puppet::Pops::Types::PBinaryType::Binary.from_binary_string(Puppet::FileSystem.binread(path))
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
puppet-8.10.0 lib/puppet/functions/binary_file.rb
puppet-8.10.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.10.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.10.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.9.0 lib/puppet/functions/binary_file.rb
puppet-8.9.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.9.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.9.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.8.1 lib/puppet/functions/binary_file.rb
puppet-8.8.1-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.8.1-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.8.1-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.7.0 lib/puppet/functions/binary_file.rb
puppet-8.7.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.7.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.7.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.6.0 lib/puppet/functions/binary_file.rb
puppet-8.6.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.6.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.6.0-universal-darwin lib/puppet/functions/binary_file.rb