summaryrefslogtreecommitdiff
path: root/Master/bin/win32
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-03-29 14:28:19 +0000
committerNorbert Preining <preining@logic.at>2008-03-29 14:28:19 +0000
commitd4eedbeb6301b3ed03a6b6f703020f7dc5dcdc63 (patch)
tree2e75e7be0a5c8389343b511710f59c3e87dd65d9 /Master/bin/win32
parent90c3bb4dc0c455df131af548a15d4cf875a86708 (diff)
too many changes, see email, basically tl.-package-manager work
git-svn-id: svn://tug.org/texlive/trunk@7221 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/bin/win32')
-rwxr-xr-xMaster/bin/win32/tl-package-manager.texlua90
1 files changed, 90 insertions, 0 deletions
diff --git a/Master/bin/win32/tl-package-manager.texlua b/Master/bin/win32/tl-package-manager.texlua
new file mode 100755
index 00000000000..ee2edadb197
--- /dev/null
+++ b/Master/bin/win32/tl-package-manager.texlua
@@ -0,0 +1,90 @@
+#! /usr/bin/env texlua
+--*-Lua-*-
+-- $Id: tl-package-manager.texlua 6943 2008-03-11 21:38:19Z reinhardk $
+
+-- Copyright (C) 2007 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
+ 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$', ''))
+
+sys=false
+
+if string.find(basename, '-sys$') then
+ basename=select(1, string.gsub(basename, '-sys$', ''))
+ sys=true
+end
+
+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'))
+
+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.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)