mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/msys_cancel_idfpy_v3.2' into 'release/v3.2'
tools: re-run idf.py in MSYS with winpty (backport v3.2) See merge request idf/esp-idf!4456
This commit is contained in:
commit
a5b007f6bb
15
tools/idf.py
15
tools/idf.py
@ -520,7 +520,20 @@ def main():
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
# On MSYS2 we need to run idf.py with "winpty" in order to be able to cancel the subprocesses properly on
|
||||
# keyboard interrupt (CTRL+C).
|
||||
# Using an own global variable for indicating that we are running with "winpty" seems to be the most suitable
|
||||
# option as os.environment['_'] contains "winpty" only when it is run manually from console.
|
||||
WINPTY_VAR = 'WINPTY'
|
||||
WINPTY_EXE = 'winpty'
|
||||
if ('MSYSTEM' in os.environ) and (not os.environ['_'].endswith(WINPTY_EXE) and WINPTY_VAR not in os.environ):
|
||||
os.environ[WINPTY_VAR] = '1' # the value is of no interest to us
|
||||
# idf.py calls itself with "winpty" and WINPTY global variable set
|
||||
ret = subprocess.call([WINPTY_EXE, sys.executable] + sys.argv, env=os.environ)
|
||||
if ret:
|
||||
raise SystemExit(ret)
|
||||
else:
|
||||
main()
|
||||
except FatalError as e:
|
||||
print(e)
|
||||
sys.exit(2)
|
||||
|
Loading…
Reference in New Issue
Block a user