diff options
author | Hans Hagen <pragma@wxs.nl> | 2017-02-17 10:31:56 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2017-02-17 10:31:56 +0100 |
commit | b14f992ef5f4e868c9959b174278c86516d60dbc (patch) | |
tree | 28587bb46c025ea7b0d27ba93f09c93dcf53c73a /tex/context/base/mkiv/data-crl.lua | |
parent | 95a1799032dc61dbca4a11e495be34b4397c8fec (diff) | |
download | context-b14f992ef5f4e868c9959b174278c86516d60dbc.tar.gz |
2017-02-17 10:23:00
Diffstat (limited to 'tex/context/base/mkiv/data-crl.lua')
-rw-r--r-- | tex/context/base/mkiv/data-crl.lua | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/tex/context/base/mkiv/data-crl.lua b/tex/context/base/mkiv/data-crl.lua index fba5a6230..ec517fba3 100644 --- a/tex/context/base/mkiv/data-crl.lua +++ b/tex/context/base/mkiv/data-crl.lua @@ -8,29 +8,45 @@ if not modules then modules = { } end modules ['data-crl'] = { -- this one is replaced by data-sch.lua -- -local gsub = string.gsub +local gsub = string.gsub +local exists = io.exists local resolvers = resolvers +local finders = resolvers.finders +local openers = resolvers.openers +local loaders = resolvers.loaders -local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders +local setfirstwritablefile = caches.setfirstwritablefile -resolvers.curl = resolvers.curl or { } -local curl = resolvers.curl +local curl = resolvers.curl or { } +resolvers.curl = curl +local cached = { } -local cached = { } +local runner = sandbox.registerrunner { + name = "curl resolver", + method = "execute", + program = "curl", + template = "--silent -- insecure --create-dirs --output %cachename% %original%", + checkers = { + cachename = "cache", + original = "url", + } +} local function runcurl(specification) local original = specification.original -- local scheme = specification.scheme local cleanname = gsub(original,"[^%a%d%.]+","-") - local cachename = caches.setfirstwritablefile(cleanname,"curl") + local cachename = setfirstwritablefile(cleanname,"curl") if not cached[original] then - if not io.exists(cachename) then + if not exists(cachename) then cached[original] = cachename - local command = "curl --silent --create-dirs --output " .. cachename .. " " .. original - os.execute(command) + runner { + cachename = cachename, + original = original, + } end - if io.exists(cachename) then + if exists(cachename) then cached[original] = cachename else cached[original] = "" |