#!/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}"