diff --git a/src/scripts/macosx.lua b/src/scripts/macosx.lua index 372547d..a2997e9 100644 --- a/src/scripts/macosx.lua +++ b/src/scripts/macosx.lua @@ -41,16 +41,9 @@ function s.script(project) local url = "https://bitbucket.org/rude/love/downloads/"..bin local cache = utils.cache.."/"..bin - -- Can't cache the archive because luarocks functions use a HEAD request to - -- Amazon AWS which will answer a 403. - -- assert(fs.download(url, cache, true)) - if not fs.exists(cache) then - local ok, msg = fs.download(url, cache) - if not ok then - utils.io.err("Tried to download "..url.." to "..cache.."\n") - assert(ok, msg) - end - end + -- Can't cache the archive because luarocks functions use a HEAD + -- request to Amazon AWS which will answer a 403. + utils.download(url, cache, false) fs.delete(bin) assert(fs.copy(cache, bin)) diff --git a/src/scripts/windows.lua b/src/scripts/windows.lua index 0cadbb7..819ccb5 100644 --- a/src/scripts/windows.lua +++ b/src/scripts/windows.lua @@ -33,12 +33,9 @@ local function release(script, project, arch) local url = "https://bitbucket.org/rude/love/downloads/"..bin local cache = utils.cache.."/"..bin - -- Can't cache the archive because luarocks functions use a HEAD request to - -- Amazon AWS which will answer a 403. - -- assert(fs.download(url, cache, true)) - if not fs.exists(cache) then - assert(fs.download(url, cache)) - end + -- Can't cache the archive because luarocks functions use a HEAD + -- request to Amazon AWS which will answer a 403. + utils.download(url, cache, false) fs.delete(bin) assert(fs.copy(cache, bin)) diff --git a/src/utils.lua b/src/utils.lua index 775809c..df87893 100644 --- a/src/utils.lua +++ b/src/utils.lua @@ -155,4 +155,22 @@ function utils.io.err(string) end +--[[ DOWNLOAD ]]-- + +--- Downloads and optionally caches a file. Will assert on download +-- failure. +-- @string url the document to download +-- @string dest where to write it +-- @bool cacheable cache it or not +function utils.download(url, dest, cacheable) + if not fs.exists(dest) then + local ok, msg = fs.download(url, dest, cacheable) + if not ok then + utils.io.err("Tried to download "..url.." to "..dest.."\n") + assert(ok, msg) + end + end +end + + return utils