Author: dreimer Date: Sun Nov 23 14:38:15 2008 New Revision: 37597
URL: http://svn.reactos.org/svn/reactos?rev=37597&view=rev Log: Almost finished new Updater System. Last Problem remaining, some missing error behavior and theres a problem with vars being set in updcheckproc are NOT set globally??! No idea how this could be possible...
Added: trunk/tools/RosBE/RosBE-Windows/Root/updcheckproc.cmd (with props) Modified: trunk/tools/RosBE/RosBE-Windows/Root/update.cmd
Modified: trunk/tools/RosBE/RosBE-Windows/Root/update.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/upda... ============================================================================== --- trunk/tools/RosBE/RosBE-Windows/Root/update.cmd [iso-8859-1] (original) +++ trunk/tools/RosBE/RosBE-Windows/Root/update.cmd [iso-8859-1] Sun Nov 23 14:38:15 2008 @@ -16,11 +16,20 @@ if %_ROSBE_DEBUG% == 1 ( @echo on ) +set _ROSBE_UPDFINISH=0 +set _ROSBE_OPATH=0 +set _ROSBE_UPDDATE=0 +set _ROSBE_UPDDATE2=0 +set _ROSBE_UPDATES=0 +set _ROSBE_OPATH=%~dp0 +set _ROSBE_OPATH=%_ROSBE_OPATH:~0,-1%
:: :: Set Title :: title Updating... + +cd /d %_ROSBE_BASEDIR%
:: :: The Update Server. @@ -28,252 +37,94 @@ set _ROSBE_URL=http://mitglied.lycos.de/reimerdaniel/rosbe
:: -:: Default Variables. +::First check for a new Updater :: -set _ROSBE_OPATH=%~dp0 -set _ROSBE_OPATH=%_ROSBE_OPATH:~0,-1% -set _ROSBE_CMDS=yes -set _ROSBE_GCC=yes -set _ROSBE_TOOLS=yes +for %%F in (update.cmd) do set _ROSBE_UPDDATE=%%~tF +"Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/update.cmd 1> NUL 2> NUL +for %%F in (update.cmd) do set _ROSBE_UPDDATE2=%%~tF +if !_ROSBE_UPDDATE! NEQ !_ROSBE_UPDDATE2! ( + cls + echo Updater got updated and needs to be restarted. + goto :EOC +) +for %%F in (updcheckproc.cmd) do set _ROSBE_UPDDATE=%%~tF +"Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/update.cmd 1> NUL 2> NUL +for %%F in (updcheckproc.cmd) do set _ROSBE_UPDDATE2=%%~tF +if !_ROSBE_UPDDATE! NEQ !_ROSBE_UPDDATE2! ( + cls + echo Updater got updated and needs to be restarted. + goto :EOC +) + +if not exist "Updates" mkdir Updates 1> NUL 2> NUL +cd Updates
:: -:: Update the Vars if the params say so. +:: Parse the args. :: if "%1" == "" ( - goto :next + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 1 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 2 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 3 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 4 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 5 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 6 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 7 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 8 next + if "!_ROSBE_UPDFINISH!" == "1" (goto :EOC) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 9 next + goto :EOC ) -elseif "%1" == "nocmds" ( - set _ROSBE_CMDS=no +if /i "%1" == "reset" ( + del /F /Q "%_ROSBE_BASEDIR%\Updates*.*" 1> NUL 2> NUL + goto :EOC ) -elseif "%1" == "nogcc" ( - set _ROSBE_GCC=no +if /i "%1" == "nr" ( + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" %2 + goto :EOC ) -elseif "%1" == "notools" ( - set _ROSBE_TOOLS=no -) else ( - cls - echo Unknown first parameter specified. Exiting. - goto :EOU +if /i "%1" == "status" ( + mkdir tmp 1> NUL 2> NUL + copy *.txt .\tmp. 1> NUL 2> NUL + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 1 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 2 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 3 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 4 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 5 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 6 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 7 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 8 status + if "!_ROSBE_UPDFINISH!" == "1" (goto :UPDFIN) + call "%_ROSBE_BASEDIR%\updcheckproc.cmd" 9 status )
-if "%2" == "" ( - goto :next -) -elseif "%2" == "nocmds" ( - set _ROSBE_CMDS=no -) -elseif "%2" == "nogcc" ( - set _ROSBE_GCC=no -) -elseif "%2" == "notools" ( - set _ROSBE_TOOLS=no -) else ( - cls - echo Unknown second parameter specified. Exiting. - goto :EOU -) +:UPDFIN +del /F /Q tmp*.* +echo Following Updates available: %_ROSBE_UPDATES%
-if "%3" == "" ( - goto :next -) -elseif "%3" == "nocmds" ( - set _ROSBE_CMDS=no -) -elseif "%3" == "nogcc" ( - set _ROSBE_GCC=no -) -elseif "%3" == "notools" ( - set _ROSBE_TOOLS=no -) else ( - cls - echo Unknown third parameter specified. Exiting. - goto :EOU -) +:EOC
-:next - -cd /d "%_ROSBE_BASEDIR%" - -if %_ROSBE_CMDS% == yes ( - - REM First check for a new Updater - - for %%F in (update.cmd) do set _ROSBE_UPDDATE=%%~tF - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/update.cmd - for %%F in (update.cmd) do set _ROSBE_UPDDATE2=%%~tF - - if !_ROSBE_UPDDATE! NEQ !_ROSBE_UPDDATE2! ( - cls - echo Updater got updated and needs to be restarted. - goto :EOU - ) - - REM PS1 Files. - - if exist "Build.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Build.ps1 - ) - if exist "chdefgcc.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/chdefgcc.ps1 - ) - if exist "Clean.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Clean.ps1 - ) - if exist "Help.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Help.ps1 - ) - if exist "MinGW.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/MinGW.ps1 - ) - if exist "RosBE.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/RosBE.ps1 - ) - if exist "rosbe-gcc-env.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/rosbe-gcc-env.ps1 - ) - - REM Arch Changer Files. - - if exist "charch.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/charch.cmd - ) - if exist "charch.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/charch.ps1 - ) - - REM Options Files. - - if exist "options.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/options.cmd - ) - if exist "options.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/options.ps1 - ) - - REM SVN Files. - - if exist "sSVN.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/sSVN.cmd - ) - if exist "sSVN.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/sSVN.ps1 - ) - - REM SCut Files. - - if exist "scut.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/scut.cmd - ) - if exist "scut.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/scut.ps1 - ) - - REM RelAddr2Line Files. - - if exist "reladdr2line.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/reladdr2line.cmd - ) - if exist "reladdr2line.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/reladdr2line.ps1 - ) - - REM Other Tools Files. - - if exist "Config.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Config.cmd - ) - if exist "Config.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Config.ps1 - ) - if exist "chdefdir.cmd" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/chdefdir.cmd - ) - if exist "chdefdir.ps1" ( - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/chdefdir.ps1 - ) - - REM Default Files. - - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Build.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/ChangeLog.txt - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/chdefgcc.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Clean.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Help.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/LICENSE.TXT - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/MinGW.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/mingw.ico - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/MinGW.mac - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/README.pdf - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/RosBE.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/rosbe.ico - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/RosBE.mac - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/rosbe-gcc-env.cmd - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/TimeDate.cmd -) - -if %_ROSBE_GCC% == yes ( - - REM Add Dates into Vars and load GCC packages if needed. - - if exist GCC.7z ( - for %%F in (GCC.7z) do set _ROSBE_GCCDATE=%%~tF - ) - - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/GCC.7z - - REM Add the maybe Updated Dates to another Var. - - for %%F in (GCC.7z) do set _ROSBE_GCCDATE2=%%~tF - - REM Extract GCC. - - if !_ROSBE_GCCDATE! NEQ !_ROSBE_GCCDATE2! ( - "Tools\7z.exe" x GCC.7z "%_ROSBE_BASEDIR%\i386" - ) -) -if %_ROSBE_TOOLS% == yes ( - - REM Add Dates into Vars and load Tool SRC packages if needed. - - if exist Tools.7z ( - for %%F in (Tools.7z) do set _ROSBE_TOOLSDATE=%%~tF - ) - - "Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/Tools.7z - - REM Add the maybe Updated Dates to another Var. - - for %%F in (Tools.7z) do set _ROSBE_TOOLSDATE2=%%~tF - - if !_ROSBE_TOOLSDATE! NEQ !_ROSBE_TOOLSDATE2! ( - "Tools\7z.exe" x Tools.7z "%TEMP%" - - REM Build the tools - - make -f %TEMP%\makefile - copy %TEMP%*.exe "%_ROSBE_BASEDIR%\Tools" - ) -) - -:EOU - -cd /d "%_ROSBE_OPATH%" - +cd /d %_ROSBE_OPATH% if defined _ROSBE_VERSION ( title ReactOS Build Environment %_ROSBE_VERSION% )
-:: -:: Unload Vars. -:: -set _ROSBE_URL= -set _ROSBE_GCCDATE= -set _ROSBE_TOOLSDATE= -set _ROSBE_GCCDATE2= -set _ROSBE_TOOLSDATE2= -set _ROSBE_CMDS= -set _ROSBE_GCC= -set _ROSBE_TOOLS= +set _ROSBE_UPDFINISH= set _ROSBE_OPATH= set _ROSBE_UPDDATE= -set _ROSBE_UPDDATE2= +set _ROSBE_UPDATES= +set _ROSBE_UPDDATE2=
Added: trunk/tools/RosBE/RosBE-Windows/Root/updcheckproc.cmd URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/updc... ============================================================================== --- trunk/tools/RosBE/RosBE-Windows/Root/updcheckproc.cmd (added) +++ trunk/tools/RosBE/RosBE-Windows/Root/updcheckproc.cmd [iso-8859-1] Sun Nov 23 14:38:15 2008 @@ -1,0 +1,65 @@ +:: +:: PROJECT: RosBE - ReactOS Build Environment for Windows +:: LICENSE: GNU General Public License v2. (see LICENSE.txt) +:: FILE: Root/update.cmd +:: PURPOSE: RosBE Updater. +:: COPYRIGHT: Copyright 2008 Daniel Reimer reimer.daniel@freenet.de +:: +:: +@echo off + +setlocal +setlocal enableextensions +setlocal enabledelayedexpansion + +if not defined _ROSBE_DEBUG set _ROSBE_DEBUG=0 +if %_ROSBE_DEBUG% == 1 ( + @echo on +) + +if "%2" == "status" ( + cd tmp + if not exist "%_ROSBE_VERSION%-%1.txt" ( + "%_ROSBE_BASEDIR%\Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/%_ROSBE_VERSION%-%1.txt 1> NUL 2> NUL + if exist "%_ROSBE_VERSION%-%1.txt" ( + echo %1 + set _ROSBE_UPDATES=%_ROSBE_UPDATES%, %1 + ) else ( + set _ROSBE_UPDFINISH=1 + ) + ) + goto :EOF +) +if not exist "%_ROSBE_VERSION%-%1.txt" ( + "%_ROSBE_BASEDIR%\Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/%_ROSBE_VERSION%-%1.txt 1> NUL 2> NUL +) +if exist "%_ROSBE_VERSION%-%1.txt" ( + type "%_ROSBE_VERSION%-%1.txt" + echo. + echo Install? + set /p YESNO="(yes), (no)" + if /i "!YESNO!"=="yes" ( + if not exist "%_ROSBE_VERSION%-%1.7z" ( + "%_ROSBE_BASEDIR%\Tools\wget.exe" -N --ignore-length --no-verbose %_ROSBE_URL%/%_ROSBE_VERSION%-%1.7z 1> NUL 2> NUL + ) + if exist "%_ROSBE_VERSION%-%1.7z" ( + "%_ROSBE_BASEDIR%\Tools\7z.exe" x "%_ROSBE_VERSION%-%1.7z" + cd "%_ROSBE_VERSION%-%1" + call "%_ROSBE_VERSION%-%1.cmd" + ) else ( + echo ERROR: This Update does not seem to exist or the Internet connection is not working correctly. + goto :EOF + ) + ) else if /i "!YESNO!"=="no" ( + del "%_ROSBE_VERSION%-%1.txt" 1> NUL 2> NUL + goto :EOF + ) +) else ( + if "%2" == "next" ( + echo set %2 + set _ROSBE_UPDFINISH=1 + ) else ( + echo ERROR: This Update does not seem to exist or the Internet connection is not working correctly. + goto :EOF + ) +)
Propchange: trunk/tools/RosBE/RosBE-Windows/Root/updcheckproc.cmd ------------------------------------------------------------------------------ svn:eol-style = native