diff options
Diffstat (limited to 'Master/bin/win32/updmap-sys.texlua')
-rwxr-xr-x | Master/bin/win32/updmap-sys.texlua | 88 |
1 files changed, 63 insertions, 25 deletions
diff --git a/Master/bin/win32/updmap-sys.texlua b/Master/bin/win32/updmap-sys.texlua index b02ee2f6064..b8b0c4ab870 100755 --- a/Master/bin/win32/updmap-sys.texlua +++ b/Master/bin/win32/updmap-sys.texlua @@ -1,52 +1,90 @@ -#!/xusr/bin/env texlua +#! /usr/bin/env texlua --*-Lua-*- -- $Id$ --- Copyright (C) 2007 Reinhard Kotucha. +-- 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="updmap-sys" +basename=select(1, string.gsub(filename, '\.texlua$', '')) -kpse.set_program_name(filename) +sys=false -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 string.find(basename, '-sys$') then + basename=select(1, string.gsub(basename, '-sys$', '')) + sys=true end -TEXDIR=kpse.var_value("SELFAUTOPARENT") +kpse.set_program_name(filename, basename) +TEXDIR=kpse.var_value('SELFAUTOPARENT') +BINDIR=kpse.var_value('SELFAUTOLOC') -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")) +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')) -perlbin=TEXDIR.."/tlpkg/tlperl/bin/perl.exe" -script=kpse.find_file(basename..".pl", "texmfscripts") +if sys then + os.setenv('TEXMFVAR', kpse.var_value('TEXMFSYSVAR')) + os.setenv('TEXMFCONFIG', kpse.var_value('TEXMFSYSCONFIG')) + os.setenv('TEX_SYS_PROG', 'true') +end -if (os.type == "windows") then - command={'"'..perlbin..'"', '"'..script..'"'} +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 - command={ perlbin, script } + os.stderr:write(filename..'.texlua: No interpreter found for '.. + basename..'\n') end -command[0] = perlbin for i=1, #arg do command[#command+1]=arg[i] end +command=fixwin(command) + ret=os.spawn(command) os.exit(ret) |