Save log file to a temporary location

This commit is contained in:
Manuel Thalmann 2023-03-25 13:41:48 +01:00
parent 384148c019
commit ebd13a9e9e

View file

@ -80,11 +80,12 @@ RUN \
install_keil() { \ install_keil() { \
echo "Starting ARM Keil installation"; \ echo "Starting ARM Keil installation"; \
try="$1"; \ try="$1"; \
logFile="$(mktemp)"; \
# Run installer asynchronously # Run installer asynchronously
{ \ { \
{ 2>&1 WINEDEBUG=+all,trace-all,warn-all /usr/bin/entrypoint wine MDK537.exe --batch-install || echo "exit $?"; } \ { 2>&1 WINEDEBUG=+all,trace-all,warn-all /usr/bin/entrypoint wine MDK537.exe --batch-install || echo "exit $?"; } \
# Write output to `log.txt` # 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 # Pipe stdout and stderr to `handle_output` function
| handle_output & \ | handle_output & \
}; \ }; \
@ -105,19 +106,19 @@ RUN \
sleep 1; \ sleep 1; \
done; \ done; \
# Kill installer after timeout indicated by `maxCount` # 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; \ wait $pid; \
exitCode=$?; \ exitCode=$?; \
# Rename log file according to the state of the installer # Rename log file according to the state of the installer
[ $DEBUG -eq 1 ] \ [ $DEBUG -eq 1 ] \
&& [ -f log.txt ] \ && [ -f "$logFile" ] \
&& { \ && { \
# Move logs to location based on exit code # Move logs to location based on exit code
[ "$exitCode" -eq 0 ] && mv log.txt "logs/success-try$try.log"; \ [ "$exitCode" -eq 0 ] && mv "$logFile" "logs/success-try$try.log"; \
[ "$exitCode" -eq 42 ] && mv log.txt "logs/timeout-handled-try$try.log"; \ [ "$exitCode" -eq 42 ] && mv "$logFile" "logs/timeout-handled-try$try.log"; \
[ "$exitCode" -ne 0 ] && mv log.txt "logs/fail-try$try.log"; \ [ "$exitCode" -ne 0 ] && mv "$logFile" "logs/fail-try$try.log"; \
}; \ }; \
[ "$exitCode" -ne 0 ] && { \ [ "$exitCode" -ne 0 ] && { \
[ "$exitCode" -eq 42 ] && echo "The installation got stuck" || \ [ "$exitCode" -eq 42 ] && echo "The installation got stuck" || \