aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2019-12-02 15:02:22 +0100
committerOliver Smith <osmith@sysmocom.de>2019-12-03 11:41:21 +0100
commitad08d17e07f307fbb67492707017a3d5103f1683 (patch)
tree257de745d22d081b018a4be261ef9e9e52f7bb7a
parent118c411e81d6a3aa96a721beab937a361fa5d551 (diff)
regen_doc.sh: support gbproxy, run without docker
Do not only update the VTY reference and counters of osmo-sgsn, but also the VTY reference of gbproxy. This was not possible with the old code path of calling "regen_doc.sh" inside docker-playground.git, as it expects the program to be updated to have the same name as the docker image. Using the docker-playground script also has the disadvantage, that one must push the development branch to git.osmocom.org before updating the VTY reference/counters, because that script would build a new docker container with a freshly cloned repository, check out the same commit that we have already locally, build that and then finally regenerate the docs. So instead of adding another parameter for the docker image to the script in docker-playground.git and calling it twice, simplify the process by rewriting the regen_doc.sh script in osmo-sgsn.git. Make it start the locally installed osmo-sgsn and osmo-gbproxy binaries and call osmo_interact_vty.py on them. Related: OS#4292 Change-Id: I8b5bd5347ea34266ad650383372630f2a84d5cce
-rwxr-xr-xdoc/manuals/regen_doc.sh82
1 files changed, 71 insertions, 11 deletions
diff --git a/doc/manuals/regen_doc.sh b/doc/manuals/regen_doc.sh
index d7584366..847b764a 100755
--- a/doc/manuals/regen_doc.sh
+++ b/doc/manuals/regen_doc.sh
@@ -1,17 +1,77 @@
-#!/bin/sh -x
+#!/bin/sh -e
-if [ -z "$DOCKER_PLAYGROUND" ]; then
- echo "You need to set DOCKER_PLAYGROUND"
+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
-fi
+}
-SCRIPT=$(realpath "$0")
-MANUAL_DIR=$(dirname "$SCRIPT")
+# $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
-COMMIT=${COMMIT:-$(git log -1 --format=format:%H)}
+ echo "Starting in background: $@"
+ "$@" > "$log" 2>&1 &
+ pid="$!"
-cd "$DOCKER_PLAYGROUND/scripts" || exit 1
+ sleep 0.5
+ if ! kill -0 "$pid" 2>/dev/null; then
+ echo "ERROR: start failed!"
+ cat "$log"
+ exit 1
+ fi
-OSMO_SGSN_BRANCH=$COMMIT ./regen_doc.sh osmo-sgsn 4245 \
- "$MANUAL_DIR/chapters/counters_generated.adoc" \
- "$MANUAL_DIR/vty/sgsn_vty_reference.xml"
+ 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"