+++ /dev/null
-Puppet::Type.type(:archive).provide(:wget, parent: :ruby) do
- commands wget: 'wget'
-
- def wget_params(params)
- params += optional_switch(resource[:username], ['--user=%s'])
- params += optional_switch(resource[:password], ['--password=%s'])
- params += optional_switch(resource[:cookie], ['--header="Cookie: %s"'])
- params += optional_switch(resource[:proxy_server], ['-e use_proxy=yes', "-e #{resource[:proxy_type]}_proxy=#{resource[:proxy_server]}"])
- params += ['--no-check-certificate'] if resource[:allow_insecure]
- params += resource[:download_options] if resource[:download_options]
-
- params
- end
-
- def download(filepath)
- params = wget_params(
- [
- Shellwords.shellescape(resource[:source]),
- '-O',
- filepath,
- '--max-redirect=5'
- ]
- )
-
- # NOTE:
- # Do NOT use wget(params) until https://tickets.puppetlabs.com/browse/PUP-6066 is resolved.
- command = "wget #{params.join(' ')}"
- Puppet::Util::Execution.execute(command)
- end
-
- def remote_checksum
- params = wget_params(
- [
- '-qO-',
- Shellwords.shellescape(resource[:checksum_url]),
- '--max-redirect=5'
- ]
- )
-
- command = "wget #{params.join(' ')}"
- Puppet::Util::Execution.execute(command)[%r{\b[\da-f]{32,128}\b}i]
- end
-end