From c21cdf0a1f13bb8c3ce9479557b8461c9ec66850 Mon Sep 17 00:00:00 2001 From: Marek Fiala Date: Fri, 23 Feb 2024 17:17:47 +0100 Subject: [PATCH] feat(tools): produce correct err code in export/install .bat scripts Plus unify labels to begin with underscore --- export.bat | 23 +++++++++++++++++++---- install.bat | 45 ++++++++++++++++++++++++++++++--------------- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/export.bat b/export.bat index 8210b40c5d..c37c6060d0 100644 --- a/export.bat +++ b/export.bat @@ -4,12 +4,20 @@ if defined MSYSTEM ( goto :eof ) +set SCRIPT_EXIT_CODE=0 + :: Missing requirements check set MISSING_REQUIREMENTS= python.exe --version >NUL 2>NUL -if %errorlevel% neq 0 set "MISSING_REQUIREMENTS= python &echo\" +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + set "MISSING_REQUIREMENTS= python &echo\" +) git.exe --version >NUL 2>NUL -if %errorlevel% neq 0 set "MISSING_REQUIREMENTS=%MISSING_REQUIREMENTS% git" +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + set "MISSING_REQUIREMENTS=%MISSING_REQUIREMENTS% git" +) if not "%MISSING_REQUIREMENTS%" == "" goto :__error_missing_requirements @@ -34,7 +42,10 @@ echo Adding ESP-IDF tools to PATH... :: but that way it is impossible to get the exit code of idf_tools.py. set "IDF_TOOLS_EXPORTS_FILE=%TEMP%\idf_export_vars.tmp" python.exe "%IDF_PATH%\tools\idf_tools.py" export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%" -if %errorlevel% neq 0 goto :__end +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + goto :__end +) for /f "usebackq tokens=1,2 eol=# delims==" %%a in ("%IDF_TOOLS_EXPORTS_FILE%") do ( call set "%%a=%%b" @@ -55,7 +66,10 @@ DOSKEY parttool.py=python.exe "%IDF_PATH%\components\partition_table\parttool.py echo Checking if Python packages are up to date... python.exe "%IDF_PATH%\tools\idf_tools.py" check-python-dependencies -if %errorlevel% neq 0 goto :__end +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + goto :__end +) python.exe "%IDF_PATH%\tools\idf_tools.py" uninstall --dry-run > UNINSTALL_OUTPUT SET /p UNINSTALL=NUL 2>NUL -if %errorlevel% neq 0 set "MISSING_REQUIREMENTS= python &echo\" +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + set "MISSING_REQUIREMENTS= python &echo\" +) git.exe --version >NUL 2>NUL -if %errorlevel% neq 0 set "MISSING_REQUIREMENTS=%MISSING_REQUIREMENTS% git" +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + set "MISSING_REQUIREMENTS=%MISSING_REQUIREMENTS% git" +) -if not "%MISSING_REQUIREMENTS%" == "" goto :error_missing_requirements +if not "%MISSING_REQUIREMENTS%" == "" goto :__error_missing_requirements :: Infer IDF_PATH from script location set IDF_PATH=%~dp0 set IDF_PATH=%IDF_PATH:~0,-1% :: Print help if requested -if /I "%1" == "/?" goto :help -if /I "%1" == "-h" goto :help -if /I "%1" == "--help" goto :help +if /I "%1" == "/?" goto :__help +if /I "%1" == "-h" goto :__help +if /I "%1" == "--help" goto :__help for /f "delims=" %%i in ('python.exe "%IDF_PATH%\tools\install_util.py" extract targets "%*"') do set TARGETS=%%i echo Installing ESP-IDF tools python.exe "%IDF_PATH%\tools\idf_tools.py" install --targets=%TARGETS% -if %errorlevel% neq 0 goto :end +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + goto :__end +) for /f "delims=" %%i in ('python.exe "%IDF_PATH%\tools\install_util.py" extract features "%*"') do set FEATURES=%%i echo Setting up Python environment python.exe "%IDF_PATH%\tools\idf_tools.py" install-python-env --features=%FEATURES% -if %errorlevel% neq 0 goto :end +if %errorlevel% neq 0 ( + set SCRIPT_EXIT_CODE=%errorlevel% + goto :__end +) echo All done! You can now run: echo export.bat -goto :end +goto :__end -:error_missing_requirements +:__error_missing_requirements echo. echo Error^: The following tools are not installed in your environment. echo. @@ -47,10 +61,11 @@ goto :end echo Please use the Windows Tool installer for setting up your environment. echo Download link: https://dl.espressif.com/dl/esp-idf/ echo For more details please visit our website: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html - goto :end + goto :__end -:help +:__help python.exe "%IDF_PATH%\tools\install_util.py" print_help bat - goto :end + goto :__end -:end +:__end +exit /b %SCRIPT_EXIT_CODE%