From ebd13a9e9e95b7224d042eec254d85d74a44021a Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Sat, 25 Mar 2023 13:41:48 +0100 Subject: [PATCH] Save log file to a temporary location --- Dockerfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 41a23d4..c429639 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,11 +80,12 @@ RUN \ install_keil() { \ echo "Starting ARM Keil installation"; \ try="$1"; \ + logFile="$(mktemp)"; \ # Run installer asynchronously { \ { 2>&1 WINEDEBUG=+all,trace-all,warn-all /usr/bin/entrypoint wine MDK537.exe --batch-install || echo "exit $?"; } \ # Write output to `log.txt` - | { [ "$DEBUG" -eq 1 ] && tee log.txt || cat; } \ + | { [ "$DEBUG" -eq 1 ] && tee "$logFile" || cat; } \ # Pipe stdout and stderr to `handle_output` function | handle_output & \ }; \ @@ -105,19 +106,19 @@ RUN \ sleep 1; \ done; \ # Kill installer after timeout indicated by `maxCount` - [ "$x" -eq "$maxCount" ] && { pkill -9 MDK537.exe; mv log.txt "logs/timeout-try$try.log"; }; \ + [ "$x" -eq "$maxCount" ] && { pkill -9 MDK537.exe; mv "$logFile" "logs/timeout-try$try.log"; }; \ } & \ }; \ wait $pid; \ exitCode=$?; \ # Rename log file according to the state of the installer [ $DEBUG -eq 1 ] \ - && [ -f log.txt ] \ + && [ -f "$logFile" ] \ && { \ # Move logs to location based on exit code - [ "$exitCode" -eq 0 ] && mv log.txt "logs/success-try$try.log"; \ - [ "$exitCode" -eq 42 ] && mv log.txt "logs/timeout-handled-try$try.log"; \ - [ "$exitCode" -ne 0 ] && mv log.txt "logs/fail-try$try.log"; \ + [ "$exitCode" -eq 0 ] && mv "$logFile" "logs/success-try$try.log"; \ + [ "$exitCode" -eq 42 ] && mv "$logFile" "logs/timeout-handled-try$try.log"; \ + [ "$exitCode" -ne 0 ] && mv "$logFile" "logs/fail-try$try.log"; \ }; \ [ "$exitCode" -ne 0 ] && { \ [ "$exitCode" -eq 42 ] && echo "The installation got stuck" || \