#!/bin/sh -e require_osmo_interact_vty() { if command -v osmo_interact_vty.py >/dev/null 2>&1; then return fi echo "ERROR: osmo_interact_vty.py not found. Are osmo-python-tests in PATH?" exit 1 } # $1: "update_vty_reference" or "update_counters" # $2: output file # $3: port # $4-$n: command interact_vty() { action="$1" output="$2" port="$3" log="/tmp/$4.log" shift 3 echo "Starting in background: $@" "$@" > "$log" 2>&1 & pid="$!" sleep 0.5 if ! kill -0 "$pid" 2>/dev/null; then echo "ERROR: start failed!" cat "$log" exit 1 fi case "$action" in "update_vty_reference") echo "Updating VTY reference: $output" osmo_interact_vty.py -X -p "$port" -H 127.0.0.1 -O "$output" ;; "update_counters") echo "Updating asciidoc counters: $output" osmo_interact_vty.py -c "enable;show asciidoc counters" -p "$port" -H 127.0.0.1 -O "$output" ;; *) echo "ERROR: invalid argument: $action" exit 1 ;; esac kill "$pid" echo "Done (killed $1)" echo } DIR="$(cd "$(dirname "$0")"; pwd)" cd "$DIR" require_osmo_interact_vty interact_vty \ "update_vty_reference" \ "vty/sgsn_vty_reference.xml" \ 4245 \ osmo-sgsn -c "../examples/osmo-sgsn/osmo-sgsn.cfg" interact_vty \ "update_vty_reference" \ "vty-osmogbproxy/gbproxy_vty_reference.xml" \ 4246 \ osmo-gbproxy -c "../examples/osmo-gbproxy/osmo-gbproxy.cfg" interact_vty \ "update_counters" \ "chapters/counters_generated.adoc" \ 4245 \ osmo-sgsn -c "../examples/osmo-sgsn/osmo-sgsn.cfg" echo "Done with all"