From 56f5a2bcc55576a29f17e9d14ed25ce82a341b6c Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 22 Jul 2020 14:06:08 -0700 Subject: [PATCH] Cleanup emsdk.bat launcher (#566) TIL a couple of things about bat files. God help me. - Use a single @echo off at the top rather than @ on every line - Use lowercase names for builtin operation - Use setlocal/endlocal rather than reseting EM_PYTHON at the end --- emsdk.bat | 65 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/emsdk.bat b/emsdk.bat index 5daffe5..c65f23e 100644 --- a/emsdk.bat +++ b/emsdk.bat @@ -1,56 +1,61 @@ +@echo off + :: Find python from an explicit location relative to the Emscripten SDK. -@IF EXIST "%~dp0python\3.7.4-pywin32_64bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\3.7.4-pywin32_64bit\python.exe" - @GOTO end + +setlocal + +if exist "%~dp0python\3.7.4-pywin32_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\3.7.4-pywin32_64bit\python.exe" + goto end ) -@IF EXIST "%~dp0python\3.7.4_64bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\3.7.4_64bit\python.exe" - @GOTO end +if exist "%~dp0python\3.7.4_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\3.7.4_64bit\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe" - @GOTO end +if exist "%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.13.1_32bit\python-2.7.13\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.13.1_32bit\python-2.7.13\python.exe" - @GOTO end +if exist "%~dp0python\2.7.13.1_32bit\python-2.7.13\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.13.1_32bit\python-2.7.13\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.5.3_64bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.5.3_64bit\python.exe" - @GOTO end +if exist "%~dp0python\2.7.5.3_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.5.3_64bit\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.5.3_32bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.5.3_32bit\python.exe" - @GOTO end +if exist "%~dp0python\2.7.5.3_32bit\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.5.3_32bit\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.5_64bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.5_64bit\python.exe" - @GOTO end +if exist "%~dp0python\2.7.5_64bit\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.5_64bit\python.exe" + goto end ) -@IF EXIST "%~dp0python\2.7.5.1_32bit\python.exe" ( - @SET EMSDK_PY="%~dp0python\2.7.5.1_32bit\python.exe" - @GOTO end +if exist "%~dp0python\2.7.5.1_32bit\python.exe" ( + set EMSDK_PY="%~dp0python\2.7.5.1_32bit\python.exe" + goto end ) :: As a last resort, access from PATH. -@SET EMSDK_PY=python +set EMSDK_PY=python :end -@call %EMSDK_PY% "%~dp0\emsdk.py" %* +call %EMSDK_PY% "%~dp0\emsdk.py" %* -@set EMSDK_PY= +endlocal :: python is not able to set environment variables to the parent calling :: process, so therefore have it craft a .bat file, which we invoke after :: finishing python execution, to set up the environment variables -@IF EXIST "%~dp0\emsdk_set_env.bat" ( - @CALL "%~dp0\emsdk_set_env.bat" > NUL - @DEL /F /Q "%~dp0\emsdk_set_env.bat" +if exist "%~dp0\emsdk_set_env.bat" ( + call "%~dp0\emsdk_set_env.bat" > nul + del /F /Q "%~dp0\emsdk_set_env.bat" )