Skip to content

Commit aba9254

Browse files
committed
Another non-functional attempt at wrapper code
1 parent 2fa308f commit aba9254

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

batch encoder.bat

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@echo off
1+
@echo on
22
setlocal enabledelayedexpansion
33

44
set CurrentVersion=v1.7.3
@@ -49,35 +49,40 @@ for %%G in (%*) DO (if "%%G"=="--debug" (set "par_debug=true" & goto ArgParser))
4949
)
5050

5151
if not "%par_selfwrapped%"=="true" (
52-
cmd /c ""%~f0" %* --selfwrapped" || (set "wraperror=true")
53-
echo UNWRAPPED ^(!errorlevel!^)
54-
echo Returning to instance %starttime%
52+
start /wait "" /b "%~f0" %* --selfwrapped
53+
echo UNWRAPPED ^(!wraperror!^) ^(!errorlevel!^)
54+
echo Returning to instance !starttime!
5555
echo Currentargs: %*
5656
echo Currentargs2: !allargs!
57-
if "!wraperror!"=="true" (
58-
<%TEMP%\batch_update.tmp set /p "newfilename="
59-
echo newfilename: !newfilename!
57+
echo Selfwrapped: !par_selfwrapped!
58+
<%TEMP%\batch_update.tmp set /p "newfilename="
59+
echo newfilename: !newfilename!
60+
pause
61+
rem If errorlevel is negative, it's a restart command:
62+
rem Standard restart
63+
if "!errorlevel!"=="-1" (
64+
echo ERROR -1 - RESTART REQUESTED
65+
echo restarting "%~f0"
6066
pause
61-
rem If errorlevel is negative, it's a restart command:
62-
rem Standard restart
63-
if "!errorlevel!"=="-1" (
64-
echo ERROR MINUS 1 - RESTART REQUESTED
65-
pause
66-
"%~f0"
67-
)
68-
rem Restart after update
69-
if "!errorlevel!"=="-2" (!newfilename! --updated-from "%~f0")
70-
rem Restart after update (with silent, so passing previous args)
71-
rem if "!errorlevel!"=="-3" ((goto) 2>nul & !newfilename! --updated-from "%~f0" %* --update false --selfwrapped false)
72-
73-
rem If errorlevel starts with 101, it's already been handled
74-
if "!errorlevel:~0,3!"=="101" (
75-
set "errorlevel=!errorlevel:~3!"
76-
) else (
77-
call:CritError "Wrapper critically exited with error code !errorlevel!."
78-
)
67+
cmd /c "%~f0" & exit /b
68+
)
69+
rem Restart after update
70+
if "!errorlevel!"=="-2" (
71+
rem !newfilename! --updated-from "%~f0"
72+
echo cmd /c ""!newfilename:"=!"" --updated-from "%~f0" ^& exit /b
73+
cmd /c @"!newfilename:"=!" --updated-from "%~f0" & exit /b
7974
)
80-
echo about to exit with code !errorlevel!
75+
rem Restart after update (with silent, so passing previous args)
76+
rem if "!errorlevel!"=="-3" ((goto) 2>nul & !newfilename! --updated-from "%~f0" %* --update false --selfwrapped false)
77+
78+
rem If errorlevel starts with 101, it's already been handled
79+
if "!errorlevel:~0,3!"=="101" (
80+
set "errorlevel=!errorlevel:~3!"
81+
) else (
82+
echo ABOUT TO CALL CRIT ERROR
83+
call:CritError "Wrapper critically exited with error code !errorlevel!."
84+
)
85+
echo instance %starttime% about to exit with code !errorlevel!
8186
exit /b !errorlevel!
8287
)
8388

@@ -244,7 +249,8 @@ if defined par_updated-from (
244249
rem (goto) 2>nul & (goto) 2>nul & "batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0" %* --update false --selfwrapped false
245250
rem cmd /c ""batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0" %* --update false --selfwrapped false" & exit
246251
) else (
247-
exit -2
252+
rem exit -2
253+
(goto) 2>nul & cmd /c ""batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0""
248254
rem "batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0"
249255
)
250256

@@ -502,7 +508,7 @@ if %TOTAL% equ 0 (echo  No files found. %formatend%)
502508
503509
:EndPause
504510
call:GrayPause
505-
exit /b 0
511+
call:CtrlExit 0
506512
507513
:CritError
508514
timeout /t 1 > nul
@@ -514,6 +520,7 @@ if %TOTAL% equ 0 (echo  No files found. %formatend%)
514520
if defined errmsg (echo Error message provided: %errmsg%)
515521
call:GrayPause
516522
call:CtrlExit 3
523+
goto:eof
517524
518525
:AutoUpdateError
519526
if exist "%updateFileName%" (del "%updateFileName%")
@@ -527,13 +534,17 @@ if %TOTAL% equ 0 (echo  No files found. %formatend%)
527534
echo The program will now restart.
528535
call:GrayPause
529536
exit -1
537+
goto:eof
530538

531539
:CtrlExit
532540
if "%par_selfwrapped%"=="true" (
541+
echo SAFE EXIT
533542
exit 101%~1
534543
)
544+
echo UNKNOWN
535545
rem go one level up (out of subroutine), then exit
536546
(goto) 2>nul || exit /b %~1
547+
goto:eof
537548

538549
:GrayPause
539550
echo %textgray%

0 commit comments

Comments
 (0)