Sha256: 955625f68039bb73f94bf02cdbfec5743bfd809849ac19506a435401b02a03f3

Contents?: true

Size: 1.31 KB

Versions: 20

Compression:

Stored size: 1.31 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

20 entries across 20 versions & 1 rubygems

Version Path
puppet-8.3.0 lib/puppet/functions/binary_file.rb
puppet-8.3.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.3.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.3.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.3.1 lib/puppet/functions/binary_file.rb
puppet-8.3.1-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.3.1-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.3.1-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.2.0 lib/puppet/functions/binary_file.rb
puppet-8.2.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.2.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.2.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.1.0 lib/puppet/functions/binary_file.rb
puppet-8.1.0-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.1.0-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.1.0-universal-darwin lib/puppet/functions/binary_file.rb
puppet-8.0.1 lib/puppet/functions/binary_file.rb
puppet-8.0.1-x86-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.0.1-x64-mingw32 lib/puppet/functions/binary_file.rb
puppet-8.0.1-universal-darwin lib/puppet/functions/binary_file.rb