summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2018-09-27 17:20:44 +0200
committerDaniel Willmann <dwillmann@sysmocom.de>2018-09-28 16:19:53 +0200
commit6dd00d876e2b947e070f776f90fbb8305a237d21 (patch)
treeca02afd4c6d7984055021ed950d44759d5b3fcc7
parent83c7134c7a9cbc9ef493a8c82071fb2cda24546c (diff)
osmo-config-merge: Add manual page
Change-Id: Ifaa5afe28779a805764caf76a89efb0a3169942e
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac14
-rw-r--r--man/Makefile.am15
-rw-r--r--man/osmo-config-merge.adoc64
5 files changed, 95 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 451c8831..cb2ce683 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,6 +81,7 @@ doc/gsm
doc/gb
doc/html.tar
doc/*.tag
+man/*.8
tags
src/crc*gen.c
diff --git a/Makefile.am b/Makefile.am
index de5eb35d..745d482c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include
-SUBDIRS = include src src/vty src/codec src/gsm src/coding src/gb src/ctrl src/sim src/pseudotalloc utils tests
+SUBDIRS = include src src/vty src/codec src/gsm src/coding src/gb src/ctrl src/sim src/pseudotalloc utils tests man
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc \
diff --git a/configure.ac b/configure.ac
index bc3358a0..529aad1d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,6 +77,19 @@ AC_ARG_ENABLE(doxygen,
AC_PATH_PROG(DOXYGEN,doxygen,false)
AM_CONDITIONAL(HAVE_DOXYGEN, test $DOXYGEN != false && test "x$doxygen" = "xyes")
+AC_ARG_ENABLE([man-doc],
+ [AS_HELP_STRING([--disable-man-doc], [Disable man page documentation])],
+ [ BUILD_MAN=$enableval ], [ BUILD_MAN="yes" ])
+
+AS_IF([test "x$BUILD_MAN" = "xyes"], [
+ AC_CHECK_PROG(A2X, [a2x], [yes])
+ AS_IF([test "$A2X" != "yes"],
+ [AC_MSG_ERROR([a2x not found, please install asciidoc or use the
+ option --disable-man-doc])])
+])
+AM_CONDITIONAL(BUILD_MAN, test "x$BUILD_MAN" = "xyes")
+AC_SUBST(BUILD_MAN)
+
# check for syscal fallback on glibc < 2.25 - can be removed once glibc version requirement is bumped
AC_CHECK_DECLS([SYS_getrandom], [], [], [[#include <sys/syscall.h>]])
@@ -370,6 +383,7 @@ AC_OUTPUT(
libosmoctrl.pc
libosmosim.pc
include/Makefile
+ man/Makefile
src/Makefile
src/vty/Makefile
src/codec/Makefile
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644
index 00000000..b2877148
--- /dev/null
+++ b/man/Makefile.am
@@ -0,0 +1,15 @@
+if BUILD_MAN
+man_MANS = osmo-config-merge.8
+endif
+
+ASCIIDOCS = osmo-config-merge.adoc
+
+A2X_OPTS_MANPAGE = --doctype manpage --format manpage -D ${builddir}
+
+%.8 : %.adoc
+ a2x ${A2X_OPTS_MANPAGE} $<
+
+EXTRA_DIST = ${ASCIIDOCS}
+
+CLEANFILES = \
+ osmo-config-merge.8
diff --git a/man/osmo-config-merge.adoc b/man/osmo-config-merge.adoc
new file mode 100644
index 00000000..205fb502
--- /dev/null
+++ b/man/osmo-config-merge.adoc
@@ -0,0 +1,64 @@
+osmo-config-merge(8)
+=====================
+
+NAME
+----
+osmo-config-merge - Merge osmocom config snippets into an existing config
+
+SYNOPSIS
+--------
+[verse]
+*osmo-config-merge* <config-file> <config-patch> [--debug]
+
+DESCRIPTION
+-----------
+This utility allows you to merge an incremental config "patch"
+into an osmocom-style config file.
+
+The patch file follows the same syntax as the original config file.
+
+It works by appending the leaf nodes of the patch file to the respective
+nodes of the input config file.
+
+This process allows configuration file changes/updates to be performed
+in a more stable/reliable way than by means of (unified) diff files,
+as they break every time the context lines break.
+
+osmo-config-merge doesn't suffer from this problem, as it understands
+the tree-like nature of VTY config files.
+
+The resulting config is printed to stdout.
+
+NOTE: This only works with configuration files that have proper
+indenting, i.e. every level in the hierarchy must be indented excatly
+one character, not multiple.
+
+OPTIONS
+-------
+*--debug*::
+ Show debugging output when parsing the config tree. Needs to be the last argument.
+
+EXAMPLE USAGE
+-------------
+[verse]
+$ osmo-config-merge osmo-msc.cfg.base osmo-msc_change_network.cfg > osmo-msc.cfg
+
+EXIT STATUS
+-----------
+Exit status is 0 if the command was successful, and 1 in case of a
+wrong/missing argument. If the tool detects an error in the patch file the
+exit status is 2.
+
+SEE ALSO
+--------
+The official Osmocom documentation including the VTY config refernce can be
+found at: http://ftp.osmocom.org/docs/latest/
+
+The Osmocom wiki is located at: http://projects.osmocom.org/
+
+
+AUTHORS
+-------
+osmo-config-merge was written by Harald Welte.
+
+The man page was written by Daniel Willmann.