diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/context/texlive/cont-sys.mkxl | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/texlive/cont-sys.mkxl b/Master/texmf-dist/tex/context/texlive/cont-sys.mkxl new file mode 100644 index 00000000000..73c619f41d6 --- /dev/null +++ b/Master/texmf-dist/tex/context/texlive/cont-sys.mkxl @@ -0,0 +1,46 @@ +% Update the ConTeXt filename cache if the system ls-R files are modified +\startluacode + local addsuffix = file.addsuffix + local attributes = lfs.attributes + local difftime = os.difftime + local file_join = file.join + local getfirstreadablefile = caches.getfirstreadablefile + local gethashes = resolvers.gethashes + local hashed = caches.hashed + local ipairs = ipairs + local pcall = pcall + local resolve = resolvers.resolve + local time = os.time + local totime = utilities.parsers.totime + + local stale = false + for _, tree in ipairs(gethashes()) do + local lsR_path = file_join(resolve(tree.name), "ls-R") + local lsR_time = attributes(lsR_path, "modification") + + local hash = hashed(tree.name) + local path = getfirstreadablefile(addsuffix(hash, "lua"), "trees") + + local state, blob = pcall(loadfile, path) + local hash_time + + if blob then + local data = blob() + if data then + hash_time = time(totime(data.date .. " " .. data.time)) + end + end + + if lsR_time and hash_time and difftime(lsR_time, hash_time) > 0 then + stale = true + end + end + + if stale then + resolvers.renewcache() + resolvers.load() + end +\stopluacode + +% Set the default paper size +\readsysfile{context-papersize.tex}{}{} |