commit 00e17281dc439c1e517671eeeb5bfc4e96f90104
parent 0a976605067bd41130c37f21f1e14368850079b1
Author: claustromaniac <20734810+claustromaniac@users.noreply.github.com>
Date: Thu, 30 Nov 2017 00:10:01 +0000
Updater 3.1a
-updatebatch now will (or at least should):
*Download new batch and name it [updater]*.bat
*Open that script in a new CMD window.
*Exit
The [updated]*.bat script should:
*Copy itself overwriting the original batch (without renaming).
*Start that script in a new CMD instance.
*Exit.
The new script, with the original name, should:
*Delete the [updated]*.bat script
*Begin the normal script routine.
@earthing do you think I should still rename the scripts to .old or something before overwriting/deleting?
Diffstat:
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/updater.bat b/updater.bat
@@ -3,7 +3,7 @@ TITLE ghacks user.js updater
REM ### ghacks-user.js updater for Windows
REM ## author: @claustromaniac
-REM ## version: 3.0
+REM ## version: 3.1a
SET _myname=%~n0
SET _myparams=%*
@@ -37,36 +37,37 @@ GOTO parse
ECHO.
IF DEFINED _updateb (
IF NOT "!_myname:~0,9!"=="[updated]" (
+ IF EXIST "[updated]!_myname!.bat" (
+ DEL /F "[updated]!_myname!.bat"
+ GOTO begin
+ )
ECHO Checking updater version...
ECHO.
- IF EXIST "[updated]!_myname!.bat" ( DEL /F "[updated]!_myname!.bat" )
REM Uncomment the next line and comment the powershell call for testing.
REM COPY /B /V /Y "!_myname!.bat" "[updated]!_myname!.bat"
(
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://github.com/ghacksuserjs/ghacks-user.js/raw/master/updater.bat', '[updated]!_myname!.bat')"
) >nul 2>&1
IF EXIST "[updated]!_myname!.bat" (
- START CMD /C "[updated]!_myname!.bat" !_myparams!
+ START /min CMD /C "[updated]!_myname!.bat" !_myparams!
EXIT /B
) ELSE (
ECHO Failed. Make sure PowerShell is allowed internet access.
ECHO.
- TIMEOUT 300
+ TIMEOUT 120
EXIT /B
)
) ELSE (
- IF EXIST "!_myname:~9!.bat" (
- REN "!_myname:~9!.bat" "!_myname:~9!.old"
- CALL :begin
- REN "!_myname!.bat" "!_myname:~9!.bat"
- DEL /F "!_myname:~9!.old"
- EXIT /B
- ) ELSE (
+ IF "!_myname!"=="[updated]" (
+ ECHO.
+ ECHO The [updated] label is reserved. Rename this script and try again.
ECHO.
- ECHO The [updated] label is reserved. Do not run an [updated] script directly, or rename it to something else before you run it.
TIMEOUT 300
- EXIT /B
+ ) ELSE (
+ COPY /B /V /Y "!_myname!.bat" "!_myname:~9!.bat"
+ START CMD /C "!_myname:~9!.bat" !_myparams!
)
+ EXIT /B
)
)
:begin