aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/curl.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/curl.lua b/lib/curl.lua
index 0728def..a832461 100644
--- a/lib/curl.lua
+++ b/lib/curl.lua
@@ -34,6 +34,26 @@ local get = function (url, headr, args)
return fetch, tonumber(scode)
end
+local zip_to_local_file = function (url, headr, out, retries)
+ local tries, hcode, zip, zcode
+
+ tries = 0
+ zip = os.tmpname()
+
+ repeat
+ _, hcode = get(url, headr, '-o ' .. zip)
+ tries = tries + 1
+ until hcode == 200 or tries > retries
+
+ if hcode == 200 then
+ zcode = util.zip_ext_first(zip, out)
+ end
+ os.remove(zip)
+
+ return (hcode == 200) and zcode
+end
+
return {
get = get,
+ zip_to_local_file = zip_to_local_file,
}