You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.6 KiB
74 lines
1.6 KiB
#!/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}"
|
|
|