diff options
author | Karl Berry <karl@freefriends.org> | 2022-12-05 21:42:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-12-05 21:42:22 +0000 |
commit | f1d5d3b19b4da2e78ec7473541f3cbc9d2d34664 (patch) | |
tree | b4df722f65ab129d9bceac2042adec4b610d4d8e /Build/source/texk | |
parent | 2777f1280916d66fc387772aa366124197d9252d (diff) |
digestif (3dec22)
git-svn-id: svn://tug.org/texlive/trunk@65210 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk')
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua b/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua new file mode 100755 index 00000000000..caf518071bc --- /dev/null +++ b/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua @@ -0,0 +1,25 @@ +#!/usr/bin/env texlua +-- Use an invalid directory name in order not to allow kpse to search +-- in the current directory. +os.setenv("TEXMFDOTDIR", package.config:find("^\\") and "NUL" or "/dev/null") +kpse.set_program_name("luatex") +local zip = require "zip" +local archive = kpse.find_file("digestif.zip") + or error("Can't find 'digestif.zip' archive") +local function digestif_searcher(modname) + local submod = modname:match("^digestif%.(.+)") + if not submod then return end + local zipfile = zip.open(archive) + local luafile = zipfile and zipfile:open(submod .. ".lua") + if not luafile then + return "\n\t[digestif] no file '"..submod..".lua' in '"..archive.."'" + end + local chunk = luafile:read("*a") + luafile:close(); zipfile:close() + return load(chunk, "="..archive.."#"..submod..".lua") +end +-- Search inside digestif.zip when requiring digestif.* modules. +table.insert(package.searchers, 2, digestif_searcher) +-- Search inside digestif.zip when loading the *.tags data files. +table.insert(require "digestif.config".data_dirs, archive) +require "digestif.langserver".main(arg) |