#!/bin/bash
# This is a script that will allow you to open a btsnooz log
# in wireshark directly from a zip file. This script will handle
# the unzipping if it is a zip file, or will convert the btsnooz
# directly in the case of a plain text file for use with wireshark.
# After wireshark closes, it will clean up all the temporary files
# used.
WIRESHARK="${WIRESHARK:-wireshark}"
BTSNOOZ="${BTSNOOZ:-btsnooz.py}"
if ! hash "${WIRESHARK}" 2>/dev/null;
then
echo "Please make sure wireshark is in your path before running."
exit 1;
fi
if ! hash btsnooz.py 2>/dev/null;
then
echo "Please make sure btsnooz.py is in your path before running."
exit 2;
fi
if [ $# -eq 0 ];
then
echo "Usage: $0 bugreport(.txt|.zip)"
exit 3;
fi
BUGREPORT="$1"
FILENAME="$(basename ${BUGREPORT})"
TMPDIR=$(mktemp --tmpdir -d "viewbtsnooz_XXXXX")
LOGFILE="${TMPDIR}/${FILENAME%.*}.btsnooz"
trap ctrl_c INT
function ctrl_c() {
rm -rf "${TMPDIR}"
}
if [ ! -f "${BUGREPORT}" ];
then
echo "File ${BUGREPORT} does not exist."
exit 4;
fi
if [ ! -d "${TMPDIR}" ];
then
echo "Unable to create temp. dir (${TMPDIR}) :("
exit 5;
fi
if [ "${BUGREPORT: -4}" == ".zip" ];
then
unzip "${BUGREPORT}" -d "${TMPDIR}"
BUGREPORT="${TMPDIR}/${FILENAME%.*}.txt"
fi
if [ -f "${BUGREPORT}" ];
then
${BTSNOOZ} "${BUGREPORT}" > "${LOGFILE}"
if [ ! $? -eq 0 ];
then
echo "Could not extract btsnooz data from ${BUGREPORT}."
rm -rf "${TMPDIR}"
exit 6;
fi
${WIRESHARK} "${LOGFILE}"
else
echo "Looks like there is no plain text bugreport (${BUGREPORT})?"
fi
rm -rf "${TMPDIR}"