summaryrefslogtreecommitdiff
path: root/Master/install-tl.bat
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-05-12 15:53:11 +0000
committerNorbert Preining <preining@logic.at>2009-05-12 15:53:11 +0000
commit7e5585bcd4f8ba119cad8f0a7e13b6a7a610776f (patch)
treec48db3cea0e4511d09d0e7b7fdf7ef7a04f68f6e /Master/install-tl.bat
parentc84165218f94bc15a1441e91a421f4d070bc5eb7 (diff)
Move most of the stuff from tlpkg, tlmgr from branch to trunk
git-svn-id: svn://tug.org/texlive/trunk@13054 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/install-tl.bat')
-rwxr-xr-xMaster/install-tl.bat108
1 files changed, 66 insertions, 42 deletions
diff --git a/Master/install-tl.bat b/Master/install-tl.bat
index 108cc3e718d..068e3250db8 100755
--- a/Master/install-tl.bat
+++ b/Master/install-tl.bat
@@ -1,50 +1,74 @@
@echo off
-setlocal
-
-rem TeX Live Root; ends with backslash
-set tlroot=%~dp0
-set tldrive=%~d0
-
-%tldrive%
-cd %tlroot%
-
-rem we need wget in the path, so add tlpkg\bin to the path
-path %tlroot%tlpkg\installer;%path%
-
-rem use provided Perl
-set PERL5LIB=%tlroot%tlpkg\installer\perllib
-
-rem remove TeX directories from searchpath with
-rem some embedded Perl and a temporary batchfile.
-rem If it is done in the Perl installer then it may not work right.
-"%tlroot%tlpkg\installer\perl" -x "%~dpn0.bat"
-goto fixpath
-
-#! perl
-my @newpt = ();
-foreach my $d (split (';', $ENV{'PATH'})) {
- my $df = $d;
- $df =~ s/\\/\//g;
- push @newpt, $d unless (-e ($df."/pdftex.exe"));
-}
-$ENV{'PATH'} = join(';',@newpt);
-my $batfile = $ENV{'TEMP'}."\\setpath.bat";
-$batfile =~ s/\\/\//g;
-open TMPBAT, ">$batfile";
-print TMPBAT 'path '.$ENV{'PATH'}."\n";
-close TMPBAT;
-__END__
-
-:fixpath
-call %TEMP%\setpath.bat
-echo Path: %path%
-rem del %TEMP%\setpath.bat
-"%tlroot%tlpkg\installer\perl" "%~dpn0" %*
+rem Wrapper script to set up environment for installer
+rem
+rem Copyright 2009 by Tomasz M. Trzeciak
+rem Public Domain
+
+rem First, check if this is DOS based system
+rem in DOS '&' is just a normal character
+echo.>nul & goto continue
+goto DOS
+:continue
+
+rem Now check for Windows NT which is also not supported
+ver | find "NT"
+if not errorlevel 1 goto WinNT
+
+rem Abort if we are running from UNC path
+if %~d0==\\ goto UNC
+
+rem Localize environment changes
+setlocal enableextensions
+
+rem Do we really need to cd to the batch location?
+cd /d %~dp0
+
+rem Break search path into dir list and rebuild w/o tex dirs
+call :rebuildpath ";" "%path:;=" "%"
+
+rem Use TL Perl
+path %~dp0tlpkg\tlperl\bin;%path%
+set PERL5LIB=%~dp0tlpkg\tlperl\lib
+
+rem Start installer
+path
+perl "%~dpn0" %*
pause Done
+goto :eof
-rem endlocal is implicit
+rem Subroutine to build search path without tex directories
+rem any dir containing pdftex.exe is considered a tex dir
+:rebuildpath ";" dir list ...
+shift
+rem The first argument (";") serves as a marker to reset the path
+if "%~0"==";" set path=
+rem Finish if no more arguments to process
+if "%~1"=="" goto :eof
+rem Continue if tex dir
+if exist "%~1\pdftex.exe" goto :rebuildpath
+rem Add dir to path
+if not defined path (path %~1) else (path %path%;%~1)
+goto :rebuildpath
rem About install-tl.bat.manifest:
rem Vista assumes that a file with install in the name is
rem an installer and therefore requires administrative privileges.
rem The manifest file tells Vista otherwise.
+
+:UNC
+echo Cannot run from UNC path.
+echo Map network drive to a drive letter and rerun the installer.
+echo Use pushd/popd commands for temporary mapping.
+pause
+exit /b 1
+
+:WinNT
+echo Windows NT is not supported. Sorry.
+echo Windows 2000 or newer is required.
+pause
+exit /b 1
+
+:DOS
+echo DOS and Windows 9x systems are not supported. Sorry.
+echo Windows 2000 or newer is required.
+pause