summaryrefslogtreecommitdiff
path: root/Master/tlpkg/installer
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-02-11 01:36:28 +0000
committerNorbert Preining <preining@logic.at>2009-02-11 01:36:28 +0000
commit38870aa3f85399010f2635bc58d83ec8dcb2d2cf (patch)
treea095c81c1a5d0aafa7bb755273aae823946d3331 /Master/tlpkg/installer
parent3423445291427575351d3b1e2025f16f66f77c37 (diff)
move w32_updater to texmf/scripts/texlive/, and let the GUI exit if
updates have been prepared. git-svn-id: svn://tug.org/texlive/trunk@12136 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/installer')
-rw-r--r--Master/tlpkg/installer/w32_updater.cmd144
1 files changed, 0 insertions, 144 deletions
diff --git a/Master/tlpkg/installer/w32_updater.cmd b/Master/tlpkg/installer/w32_updater.cmd
deleted file mode 100644
index 1cdf21f77ee..00000000000
--- a/Master/tlpkg/installer/w32_updater.cmd
+++ /dev/null
@@ -1,144 +0,0 @@
-@echo off
-rem Update script for TeX Live infrastructure
-rem called automatically if there are any infrastructure updates
-rem
-rem Copyright 2009 by Tomasz M. Trzeciak <t.m.trzeciak@googlemail.com>
-rem This file is licensed under the GNU General Public License version 2
-rem or any later version.
-rem
-
-rem This script makes some very specific assumptions.
-rem Arguments are expected to be a package list passed in triples:
-rem package-name old-revision-number new-revision-number
-rem For each package-name a tar archive package-name.tar is
-rem expected as well (also for .source and .doc pseudo packages -
-rem - those are for distribution only and don't appear as separate
-rem entries in tlpdb) and a corresponding backup archive
-rem __BACKUP_package-name.rXXX.tar, where XXX is (old)
-rem revision number (.source and .doc are included in them)
-
-rem The update logic is follows:
-rem (1) untar all package archives
-rem (2) include .tlpobj files into tlpdb
-rem (3) print update info
-rem Any error during (1) or (2) trigers a rollback action:
-rem (1) print failed update info
-rem (2) untar all package backups
-rem (3) include .tlpobj files (from backup) into tlpdb
-rem (4) print restore info and popup an error dialog
-rem Any error during (1) or (2) and we go into panic mode.
-rem At this point there is no guarantee that the installation is still
-rem working. There is not much we can do but to print failed restore info
-rem and popup a fatal error dialog with instructions to download and run
-rem 'update-tlmgr-latest.exe' when everything else failed.
-
-rem make environment changes local & enable cmd extensions
-setlocal enableextensions
-rem get installation root
-for /f "delims=" %%D in ('kpsewhich -var-value=SELFAUTOPARENT') do (set tlroot=%%~fD)
-if exist "%tlroot%\" goto :foundtlroot
->&2 echo Could not locate installation root.
-exit /b 1
-
-:foundtlroot
-rem get location of the log file
-for /f "delims=" %%D in ('kpsewhich -var-value=TEXMFSYSVAR') do (set logdir=%%~fD\web2c)
-if not exist "%logdir%\" (set logdir=temp)
-rem cd to root
-cd /d "%tlroot%"
-rem create tar.exe backup
->nul copy /y "%~dp0tar.exe" "%~dp0tarsave.exe"
-rem set up perl environment
-set "PERL5LIB=%tlroot%\tlpkg\tlperl\lib"
-rem let's make sure that we can use dynamic variables
-(set errorlevel=)
-(set date=)
-(set time=)
-
-rem get package list from arguments
-(set pkgpartslist=%*)
-if not defined pkgpartslist exit /b 0
-rem construct package list without .source and .doc packages
-rem count the total number of packages while doing that
-set pkgcount=0
-(set pkglist=)
-call :foreachpkg :remove_src_doc pkglist %pkgpartslist%
-
-echo DO NOT CLOSE THIS WINDOW!
-echo TeX Live infrastructure update in progress...
-call :foreachpkg :untar "temp\" %pkgpartslist% || goto :rollback
-call :foreachpkg :incltlpobj "tlpkg\tlpobj\" %pkgpartslist% || goto :rollback
-call :foreachpkg :update_info "" %pkglist%
-echo Update complete.
-set exitcode=0
-goto :finish
-
-:rollback
-call :foreachpkg :update_info ">&2" %pkglist%
->&2 echo Update failed! Rolling back to previous version...
-call :foreachpkg :untar "temp\__BACKUP_" %pkglist% || goto :panic
-call :foreachpkg :incltlpobj "tlpkg\tlpobj\" %pkglist% || goto :panic
-call :foreachpkg :restore_info "" %pkglist%
-echo Recovery from backup successful.
-call :errorpopup "ERROR: TeX Live" "TeX Live infrastructure update failed."
-set exitcode=1
-goto :finish
-
-:panic
-call :foreachpkg :restore_info ">&2" %pkglist%
->&2 echo FATAL ERROR: recovery from backup failed!
-echo Your TeX Live installation may be broken, to repair it download and run:
-echo http://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.exe
-call :errorpopup "FATAL ERROR: TeX Live" "TeX Live infrastructure update failed and so did recovery from backup.\nYour TeX Live installation may be broken, to repair it download and run:\nhttp://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.exe"
-rem Evil has taken over - emit adequate exit code
-exit /b 666
-
-:finish
-2>nul del tlpkg\installer\tarsave.exe temp\__BACKUP_*
-exit /b %exitcode%
-
-REM SUBROUTINES
-
-:foreachpkg cmd prefix [pkg_name oldrev newrev [...]]
-set pkgcurr=0
-:pkgloop
-if [%3]==[] exit /b 0
-set /a pkgcurr+=1
-call %~1 %2 %3 %4 %5
-if errorlevel 1 exit /b %errorlevel%
-shift /3 & shift /3 & shift /3
-goto :pkgloop
-
-:untar temp\[__BACKUP_] pkg_name
-set "ext=tar"
-if %~n1_==__BACKUP__ set "ext=r%~3.tar"
-tlpkg\installer\tarsave.exe -x -f "%~1%~2.%ext%" && del "%~1%~2.%ext%"
-exit /b %errorlevel%
-
-:incltlpobj tlpkg\tlpobj\ pkg_name
-tlpkg\tlperl\bin\perl.exe texmf\scripts\texlive\tlmgr.pl _include_tlpobj "%~1%~2.tlpobj"
-exit /b %errorlevel%
-
-:remove_src_doc
-if /i %~x2.==.source. exit /b 0
-if /i %~x2.==.doc. exit /b 0
-set %1=%pkglist% %2 %3 %4
-set /a pkgcount+=1
-exit /b 0
-
-:update_info redir pkg_name oldrev newrev
-set "infomsg=update: %~2 (%~3 -^> %~4)"
-goto :continue_info
-:restore_info redir pkg_name oldrev newrev
-set "infomsg=restore: %~2 (%~3)"
-:continue_info
-if "%~1"==">&2" set "infomsg=failed %infomsg%"
->>"%logdir%\tlmgr.log" echo [%date% %time%] %infomsg%
-%~1 echo [%pkgcurr%/%pkgcount%] %infomsg%
-exit /b 0
-
-:errorpopup "title string" "message text"
->temp\errorpopup.vbs echo CreateObject("Scripting.FileSystemObject").DeleteFile(WScript.ScriptFullName) : MsgBox Replace("%~2","\n",Chr(10)), 16, "%~1"
-wscript temp\errorpopup.vbs
-rem del temp\errorpopup.vbs
-exit /b 0 \ No newline at end of file