diff options
Diffstat (limited to 'lib/curl.lua')
-rw-r--r-- | lib/curl.lua | 20 |
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, } |