X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Farchive%2Flib%2Fpuppet%2Fprovider%2Farchive%2Fcurl.rb;fp=3rdparty%2Fmodules%2Farchive%2Flib%2Fpuppet%2Fprovider%2Farchive%2Fcurl.rb;h=47981df6107d29e42cfbd1eaa07383add1283204;hb=e107504bce7d9b21cc301124fc7c39fdb0762374;hp=0000000000000000000000000000000000000000;hpb=24caa46729f80fbba4be8b9b26ebcb3acc4cb0fb;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/archive/lib/puppet/provider/archive/curl.rb b/3rdparty/modules/archive/lib/puppet/provider/archive/curl.rb new file mode 100644 index 000000000..47981df61 --- /dev/null +++ b/3rdparty/modules/archive/lib/puppet/provider/archive/curl.rb @@ -0,0 +1,43 @@ +Puppet::Type.type(:archive).provide(:curl, parent: :ruby) do + commands curl: 'curl' + defaultfor feature: :posix + + def curl_params(params) + account = [resource[:username], resource[:password]].compact.join(':') if resource[:username] + params += optional_switch(account, ['--user', '%s']) + params += optional_switch(resource[:cookie], ['--cookie', '%s']) + params += optional_switch(resource[:proxy_server], ['--proxy', '%s']) + params += ['--insecure'] if resource[:allow_insecure] + params += resource[:download_options] if resource[:download_options] + + params + end + + def download(filepath) + params = curl_params( + [ + resource[:source], + '-o', + filepath, + '-fsSL', + '--max-redirs', + 5 + ] + ) + + curl(params) + end + + def remote_checksum + params = curl_params( + [ + resource[:checksum_url], + '-fsSL', + '--max-redirs', + 5 + ] + ) + + curl(params)[%r{\b[\da-f]{32,128}\b}i] + end +end