Refactor email attachment handling in runtest.sh for improved clarity and reliability

This commit is contained in:
Yaro Kasear 2025-04-16 12:56:32 -05:00
parent 0eab8a0bfa
commit e698e25a5d

View file

@ -129,19 +129,27 @@ if [ -z "$KISMET_LOG" ] || [ ! -f "$KISMET_LOG" ]; then
exit 1
fi
python3 $SCRIPT_DIRECTORY/enrich.py --csv $TEST_FILE --pcapng "$KISMET_LOG" --output "$ENRICHED_FILE"
# Final email with attachment(s)
EMAIL_BODY="The test with UID ${BOOT_ID} is complete. Please collect the probe. Data is attached."
EMAIL_SUBJECT="Test ${BOOT_ID} Complete"
ATTACHMENTS="$ENRICHED_FILE"
# Construct list of attachments safely
ATTACHMENTS=()
if [ -f "$ENRICHED_FILE" ]; then
ATTACHMENTS+=("$ENRICHED_FILE")
fi
# Check if a failure log exists and add it to the attachments
FAILURE_LOG="${TEST_FILE%.csv}-failures.log"
if [ -f "$FAILURE_LOG" ]; then
ATTACHMENTS="$ATTACHMENTS -a $FAILURE_LOG"
ATTACHMENTS+=("$FAILURE_LOG")
echo "[+] Attaching failure log: $FAILURE_LOG"
fi
# Final email with attachment
echo "The test with UID ${BOOT_ID} is complete. Please collect the probe. Data is attached." | \
mutt -s "Test ${BOOT_ID} Complete" $ATTACHMENTS -- "$RECIPIENT"
# Check if there's at least one file to send
if [ ${#ATTACHMENTS[@]} -eq 0 ]; then
echo "[!] No files to attach. Email not sent."
else
echo "$EMAIL_BODY" | mutt -s "$EMAIL_SUBJECT" "${ATTACHMENTS[@]/#/-a }" -- "$RECIPIENT"
fi
echo "[+] Email sent to $RECIPIENT with attachments: ${ATTACHMENTS[*]}"
sudo kill $SUDO_KEEPALIVE_PID