summaryrefslogtreecommitdiff
path: root/support/texdoc/script/texdoc.tlu
blob: e16f2e4eb1a772a5ba1cd11ff90cdea9ef93ec8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env texlua

-- texdoc.tlu: the main program of texdoc
--
-- The TeX Live Team, GPLv3, see texdoclib.tlu for details

-- Note: we keep this file small as much as possible so that make it easier
--       to install a new version of texdoc in TEXMFHOME.

local lfs = require 'lfs'
local kpse = require 'kpse'

-- setup kpse library
kpse.set_program_name(arg[-1], 'texdoc')

-- get realpath of this file
local function realpath(p)
    if os.type == 'unix' then
        local e = os.execute('which realpath >/dev/null 2>&1')
        if e == 0 then
            local h = io.popen(string.format("realpath '%s'", p))
            local r = h:read('*a')
            h:close()
            return r:gsub('\n$', '')
        end
    end
    return ''
end
local file = realpath(arg[0])

-- if the file is not in TEXMFMAIN, set temporal TEXMFAUXTREES and TEXMFDIST
local texmf = file:match('^(.*/texmf[^/]*)/scripts/texdoc/texdoc.tlu$')
if texmf ~= nil then
    if texmf ~= kpse.var_value('TEXMFMAIN') then
        io.stderr:write('Info: ' ..
            'Running Texdoc not installed in the current TEXMFMAIN.\n')
        os.setenv('TEXMFAUXTREES', texmf .. ',')
        os.setenv('TEXMFDIST', ',')
    end
end

-- load the library and execute
local texdoc = require 'texdoclib'
assert(texdoc.cli, 'Internal error: Texdoc is not installed properly.')
texdoc.cli.exec()

-- vim: ft=lua: