mirror of
https://github.com/espressif/esp-idf.git
synced 2026-01-21 04:01:08 +00:00
Currently the forced progress in RunTool is trying to fit the output line into a terminal width, but it doesn't take into an account a situation when the terminal width is reported as zero. This manifests when running in docker image with redirected output and can be seen in the github workflow output for esp-idf-ci-action. docker run --rm -t my_ubuntu_esp python3 -c 'import os,sys; print(os.get_terminal_size(), sys.stdout.isatty())' os.terminal_size(columns=238, lines=59) True vs docker run --rm -t my_ubuntu_esp python3 -c 'import os,sys; print(os.get_terminal_size(), sys.stdout.isatty())' | tee os.terminal_size(columns=0, lines=0) True Since the output is reported as tty and the terminal width as 0, the fit_text_in_terminal() function returns empty string. I also verified this by running idf.py build inside a testing docker image. This fix adjusts the fit_text_in_terminal() function to return original line if the terminal width is zero. Also simplify the progress print and use same approach as ninja https://github.com/ninja-build/ninja/blob/master/src/line_printer.cc#L66 Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>