aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/contrib')
-rwxr-xr-xopenbsc/contrib/dump_all_docs.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/openbsc/contrib/dump_all_docs.py b/openbsc/contrib/dump_all_docs.py
new file mode 100755
index 000000000..314f60bab
--- /dev/null
+++ b/openbsc/contrib/dump_all_docs.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+"""
+Start the process and dump the documentation to the doc dir. This is
+copied from the BTS directory and a fix might need to be applied there
+too.
+"""
+
+import socket, subprocess, time,os
+
+
+def dump_doc(end, port, filename):
+ sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sck.setblocking(1)
+ sck.connect(("localhost", port))
+ sck.recv(4096)
+
+ # Now send the command
+ sck.send("show online-help\r")
+ xml = ""
+ while True:
+ data = sck.recv(4096)
+ xml = "%s%s" % (xml, data)
+ if data.endswith(end):
+ break
+
+ # Now write everything until the end to the file
+ out = open(filename, 'w')
+ out.write(xml[18:len(filename)*-1])
+ out.close()
+
+
+apps = [
+ # The same could be done with an empty config file but this way
+ # the example files are properly tested.
+ (4242, "src/osmo-nitb/osmo-nitb", "doc/examples/osmo-nitb/nanobts/openbsc.cfg", "OpenBSC", "nitb"),
+ (4242, "src/osmo-bsc/osmo-bsc", "doc/examples/osmo-bsc/osmo-bsc.cfg", "OsmoBSC", "bsc"),
+ (4243, "src/osmo-bsc_mgcp/osmo-bsc_mgcp", "doc/examples/osmo-bsc_mgcp/mgcp.cfg", "OpenBSC MGCP", "mgcp"),
+ (4244, "src/osmo-bsc_nat/osmo-bsc_nat", "doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg", "OsmoBSCNAT", "nat"),
+ (4246, "src/gprs/osmo-gbproxy", "doc/examples/osmo-gbproxy/osmo-gbproxy.cfg", "OsmoGbProxy", "gbproxy"),
+]
+
+# Dump the config of all our apps
+for app in apps:
+ print "Starting app for %s" % app[4]
+
+ cmd = [app[1], "-c", app[2]]
+ proc = subprocess.Popen(cmd, stdin=None, stdout=None)
+ time.sleep(1)
+ try:
+ dump_doc('\r\n%s> ' % app[3], app[0], 'doc/%s_vty_reference.xml' % app[4])
+ finally:
+ # Clean-up
+ proc.kill()
+ proc.wait()
+