#! /usr/bin/env texlua --*-Lua-*- -- $Id: tl-w32-wrapper.texlua 7785 2008-05-01 21:09:37Z preining $ -- Copyright (C) 2007, 2008 Reinhard Kotucha, Norbert Preining. -- You may freely use, modify and/or distribute this file. -- 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 progname = select(1, string.gsub(arg[1], '.*/', '')) elseif string.find(arg[0], '\\') then -- Windows path progname = select(1, string.gsub(arg[1], '.*\\', '')) else -- no path progname = arg[1] end sys=false if string.find(progname, '-sys$') then basename = select(1, string.gsub(progname, '-sys$', '')) sys=true else basename = progname end kpse.set_program_name(progname..".bat", progname) TEXDIR=kpse.var_value('SELFAUTOPARENT') BINDIR=kpse.var_value('SELFAUTOLOC') perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'.. TEXDIR..'/tlpkg/installer;'.. os.getenv('PATH')) os.setenv('WGETRC', TEXDIR..'/tlpkg/installer/wgetrc') os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib') os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts') 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 sys and lfs.isfile(BINDIR..'/'..basename..'.exe') then command={BINDIR..'/'..basename..'.exe'} elseif lfs.isfile(BINDIR..'/'..basename..'-bin.exe') then command={BINDIR..'/'..basename..'-bin.exe'} elseif lfs.isfile(BINDIR..'/'..basename..'.pl') then script=BINDIR..'/'..basename..'.pl' command={perlbin, script} elseif kpse.find_file(basename..'.pl', 'texmfscripts') then script=kpse.find_file(basename..'.pl', 'texmfscripts') command={perlbin, script} elseif kpse.find_file(basename..'.tlu', 'texmfscripts') then script=kpse.find_file(basename..'.tlu', 'texmfscripts') command={'texlua', script} else io.stderr:write(basename..'.bat: '..basename.. ': No appropriate script found.\n') end for i=2, #arg do command[#command+1]=arg[i] end command=fixwin(command) --[[ Prepend an additional hyphen to activate this code. for i=0, #command do print (command[i]) end os.exit(ret) --]] ret=os.spawn(command) os.exit(ret)