File: read_url.rb

package info (click to toggle)
puppet-module-extlib 7.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 420 kB
  • sloc: ruby: 1,035; sh: 15; makefile: 10
file content (25 lines) | stat: -rw-r--r-- 829 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# frozen_string_literal: true

# Fetch a string from a URL (should only be used with 'small' remote files).
#
# This function should only be used with trusted/internal sources.
# This is especially important if using it in conjunction with `inline_template`
# or `inline_epp`.
# The current implementation is also very basic.  No thought has gone into timeouts,
# support for redirects, CA paths etc.
Puppet::Functions.create_function(:'extlib::read_url') do
  # @param url The URL to read from
  # @return Returns the contents of the url as a string
  # @example Calling the function
  #   extlib::read_url('https://example.com/sometemplate.epp')
  dispatch :read_url do
    param 'Stdlib::HTTPUrl', :url
    return_type 'String'
  end

  def read_url(url)
    require 'open-uri'
    uri = URI.parse(url)
    uri.read
  end
end