X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Farchive%2Flib%2Fpuppet%2Fprovider%2Farchive%2Fwget.rb;fp=3rdparty%2Fmodules%2Farchive%2Flib%2Fpuppet%2Fprovider%2Farchive%2Fwget.rb;h=fc8e0b526bed3b28b4613f10fb39c3c73dc7bee9;hb=e107504bce7d9b21cc301124fc7c39fdb0762374;hp=0000000000000000000000000000000000000000;hpb=24caa46729f80fbba4be8b9b26ebcb3acc4cb0fb;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/archive/lib/puppet/provider/archive/wget.rb b/3rdparty/modules/archive/lib/puppet/provider/archive/wget.rb new file mode 100644 index 000000000..fc8e0b526 --- /dev/null +++ b/3rdparty/modules/archive/lib/puppet/provider/archive/wget.rb @@ -0,0 +1,43 @@ +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