Skip to content

Commit

Permalink
Merge branch 'feature/export_bat_exit_codes_v4.4' into 'release/v4.4'
Browse files Browse the repository at this point in the history
feat(tools): produce correct err code in install/export .bat scripts (v4.4)

See merge request espressif/esp-idf!29547
  • Loading branch information
dobairoland committed Mar 12, 2024
2 parents 5bd00ec + d65e3c8 commit cebb1b3
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
23 changes: 19 additions & 4 deletions export.bat
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,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

Expand All @@ -32,7 +40,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"
Expand All @@ -53,7 +64,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\check_python_dependencies.py"
if %errorlevel% neq 0 goto :__end
if %errorlevel% neq 0 (
set SCRIPT_EXIT_CODE=%errorlevel%
goto :__end
)

echo.
echo Done! You can now compile ESP-IDF projects.
Expand Down Expand Up @@ -95,3 +109,4 @@ set IDF_TOOLS_JSON_PATH=
set OLD_PATH=
set PATH_ADDITIONS=
set MISSING_REQUIREMENTS=
exit /b %SCRIPT_EXIT_CODE%
35 changes: 25 additions & 10 deletions install.bat
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,25 @@
if defined MSYSTEM (
echo This .bat file is for Windows CMD.EXE shell only. When using MSYS, run:
echo ./install.sh.
goto end
goto :__end
)

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
if not "%MISSING_REQUIREMENTS%" == "" goto :__error_missing_requirements

:: Infer IDF_PATH from script location
set IDF_PATH=%~dp0
Expand All @@ -23,17 +31,23 @@ if NOT "%1"=="" set TARGETS=%*

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
)

echo Setting up Python environment
python.exe "%IDF_PATH%\tools\idf_tools.py" install-python-env
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.
Expand All @@ -42,6 +56,7 @@ 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

:end
:__end
exit /b %SCRIPT_EXIT_CODE%

0 comments on commit cebb1b3

Please sign in to comment.