summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <guskraro@student.gu.se>2017-10-10 14:31:16 +0200
committerRobin Krahl <guskraro@student.gu.se>2017-10-10 14:31:16 +0200
commitcec1ed42f3de738c502bf2ecf51567cf4f7c458e (patch)
tree1d71aff628a8cc44c2fea69ebe06d4e4d6b82b66
parentd3f3c2544b31d2ee194b1287bd07057b32871d7a (diff)
downloadmidbro-cec1ed42f3de738c502bf2ecf51567cf4f7c458e.tar.gz
midbro-cec1ed42f3de738c502bf2ecf51567cf4f7c458e.tar.bz2
Add script to execute midbropasad & brobroccoli-events
-rw-r--r--broccoli/script/run-midbro.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/broccoli/script/run-midbro.sh b/broccoli/script/run-midbro.sh
new file mode 100644
index 0000000..a9bb008
--- /dev/null
+++ b/broccoli/script/run-midbro.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+if [ $# -ne 2 ]
+then
+ echo "Starts Bro with the given arguments in the background and, when"
+ echo "it’s ready, starts Midbro."
+ echo
+ echo "Usage: $0 INTERFACE SCRIPT"
+ echo "Example: $0 lo modbus.bro"
+ exit
+fi
+
+INTERFACE=$1
+SCRIPT=$(realpath $2)
+
+BRODIR=$(realpath "$(dirname "$0")/../..")
+BROLOG=$(realpath bro.log)
+
+MIDBRO=${BRODIR}/broccoli/bin/midbropasad
+MIDBROLOG=$(realpath midbro.log)
+
+TMPDIR=$(mktemp --directory --tmpdir pasad.XXXX)
+
+echo "* Starting Bro in background ..."
+cd "${TMPDIR}" && sudo bro -i "${INTERFACE}" "${SCRIPT}" > ${BROLOG} 2>&1 &
+BROPID=$!
+
+echo "* Waiting for Bro to listen ..."
+sleep 1
+tail -f ${BROLOG} | while read LOGLINE
+do
+ [[ "${LOGLINE}" == "listening on "* ]] && pkill -P $$ tail
+done
+
+echo "* Starting Midbro ..."
+${MIDBRO}
+
+kill $BROPID
+
+rm -r "${TMPDIR}"