diff options
Diffstat (limited to 'Master/bin/win32/fmtutil-sys.texlua')
-rwxr-xr-x | Master/bin/win32/fmtutil-sys.texlua | 85 |
1 files changed, 68 insertions, 17 deletions
diff --git a/Master/bin/win32/fmtutil-sys.texlua b/Master/bin/win32/fmtutil-sys.texlua index f075b43e607..b8b0c4ab870 100755 --- a/Master/bin/win32/fmtutil-sys.texlua +++ b/Master/bin/win32/fmtutil-sys.texlua @@ -1,39 +1,90 @@ -#!/xusr/bin/env texlua +#! /usr/bin/env texlua --*-Lua-*- --- $Id: fmtutil-sys.texlua 6607 2008-02-11 15:37:39Z siepo $ +-- $Id$ --- Copyright (C) 2008 Reinhard Kotucha, Norbert Preining +-- Copyright (C) 2007 Reinhard Kotucha, Norbert Preining. -- You may freely use, modify and/or distribute this file. --- Wrapper for Perl scripts. +-- Wrapper for scripts. +function fixwin(args_unix) + if os.type == 'windows' then + local args_win={} -- new table + args_win[0]=args_unix[1] + for i=1, #args_unix do + args_win[i]='"'..args_unix[i]..'"' + end + return args_win + else + return args_unix + end +end -if string.find(arg[0], "/") then -- UNIX path - filename=select(1, string.gsub(arg[0], ".*/", "")) -elseif string.find(arg[0], "\\") then -- Windows path - filename=select(1, string.gsub(arg[0], ".*\\", "")) +if string.find(arg[0], '/') then -- UNIX path + filename=select(1, string.gsub(arg[0], '.*/', '')) +elseif string.find(arg[0], '\\') then -- Windows path + filename=select(1, string.gsub(arg[0], '.*\\', '')) else -- no path filename=arg[0] end -basename=select(1, string.gsub(filename, "\.texlua$", "")) +basename=select(1, string.gsub(filename, '\.texlua$', '')) + +sys=false + +if string.find(basename, '-sys$') then + basename=select(1, string.gsub(basename, '-sys$', '')) + sys=true +end --- basename="fmtutil-sys" +kpse.set_program_name(filename, basename) +TEXDIR=kpse.var_value('SELFAUTOPARENT') +BINDIR=kpse.var_value('SELFAUTOLOC') -kpse.set_program_name(filename) +os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib') +os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib') +os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH')) -if string.find(basename, "-sys$") then - basename=select(1, string.gsub(basename, "-sys$", "")) - os.setenv("TEXMFVAR", kpse.var_value("TEXMFSYSVAR")) - os.setenv("TEXMFCONFIG", kpse.var_value("TEXMFSYSCONFIG")) +if sys then + os.setenv('TEXMFVAR', kpse.var_value('TEXMFSYSVAR')) + os.setenv('TEXMFCONFIG', kpse.var_value('TEXMFSYSCONFIG')) + os.setenv('TEX_SYS_PROG', 'true') end -command = { "fmtutil.exe" } +if sys and lfs.isfile(BINDIR..'/'..basename..'.exe') then + command={BINDIR..'/'..basename..'.exe'} +elseif lfs.isfile(BINDIR..'/'..basename..'-bin.exe') + command={BINDIR..'/'..basename..'-bin.exe'} +elseif lfs.isdir(BINDIR..'/'..basename..'.pl') then + perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' + script=BINDIR..'/'..basename..'.pl' + command={perlbin, script} +elseif kpse.find_file(basename..'.pl', 'texmfscripts') then + perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' + script=kpse.find_file(basename..'.pl', 'texmfscripts') + command={perlbin, script} +elseif kpse.find_file(basename..'.rb', 'texmfscripts') then + script=kpse.find_file(basename..'.rb', 'texmfscripts') + command={'ruby', script} +elseif kpse.find_file(basename..'.py', 'texmfscripts') then + script=kpse.find_file(basename..'.py', 'texmfscripts') + command={'python', script} +elseif kpse.find_file(basename..'.texlua', 'texmfscripts') then + script=kpse.find_file(basename..'.texlua', 'texmfscripts') + command={'texlua', script} +elseif kpse.find_file(basename..'.lua', 'texmfscripts') then + script=kpse.find_file(basename..'.lua', 'texmfscripts') + command={'texlua', script} +else + os.stderr:write(filename..'.texlua: No interpreter found for '.. + basename..'\n') +end for i=1, #arg do command[#command+1]=arg[i] end +command=fixwin(command) + ret=os.spawn(command) os.exit(ret) - |