Merge branch 'fix/runtool_crcrlf_v5.1' into 'release/v5.1'

fix: save RunTool command output with correct line endings (v5.1)

See merge request espressif/esp-idf!28678
This commit is contained in:
Roland Dobai 2024-02-27 17:45:52 +08:00
commit f85280f0ba

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import asyncio
import importlib
@ -8,7 +8,6 @@ import re
import subprocess
import sys
from asyncio.subprocess import Process
from io import open
from pkgutil import iter_modules
from types import FunctionType
from typing import Any, Dict, Generator, List, Match, Optional, TextIO, Tuple, Union
@ -396,7 +395,11 @@ class RunTool:
last_line = ''
try:
with open(output_filename, 'w', encoding='utf8') as output_file:
# The command output from asyncio stream already contains OS specific line ending,
# because it's read in as bytes and decoded to string. On Windows "output" already
# contains CRLF. Use "newline=''" to prevent python to convert CRLF into CRCRLF.
# Please see "newline" description at https://docs.python.org/3/library/functions.html#open
with open(output_filename, 'w', encoding='utf8', newline='') as output_file:
while True:
if self.interactive:
output = await read_interactive_stream()