aboutsummaryrefslogtreecommitdiff
path: root/broccoli/script
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-11 09:38:17 +0000
commit213eeafebce653b13ac346ed05c139b868c208b7 (patch)
treedde4440ffbcbbe34774c717cc0ca44315932e3bf /broccoli/script
parent34d908b490d9b14532a1617fa80a258d709267a3 (diff)
downloadmidbro-213eeafebce653b13ac346ed05c139b868c208b7.tar.gz
midbro-213eeafebce653b13ac346ed05c139b868c208b7.tar.bz2
Add script to execute midbropasad & bro
Diffstat (limited to 'broccoli/script')
-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}"