]> git.ipfire.org Git - ddns.git/commitdiff
Merge remote-tracking branch 'origin/man-pages'
authorStefan Schantl <stefan.schantl@ipfire.org>
Sun, 8 Feb 2015 22:05:27 +0000 (23:05 +0100)
committerStefan Schantl <stefan.schantl@ipfire.org>
Sun, 8 Feb 2015 22:05:27 +0000 (23:05 +0100)
Conflicts:
configure.ac

.gitignore
Makefile.am
configure.ac
man/custom-html.xsl [new file with mode: 0644]
man/ddns.conf.xml [new file with mode: 0644]
man/ddns.xml [new file with mode: 0644]

index dc5d2d366366b3fd9ceca0856499e0a8a6759633..29e653d34bd8fbfb7d72735898d30d9eae669cb6 100644 (file)
@@ -2,6 +2,8 @@
 /build-aux
 /ddns
 /ddns.conf
+/man/*.[0-9]
+/man/*.html
 /missing
 /src/ddns/__version__.py
 /tmp
index 2ca1c3b0accd7e6e273ca3e915a2866cdc24ae35..a783064e887694ae836280b6cec32ac05e6e47cc 100644 (file)
@@ -37,6 +37,7 @@ configsdir = $(sysconfdir)/ddns
 CLEANFILES =
 DISTCLEANFILES =
 EXTRA_DIST =
+noinst_DATA =
 
 @INTLTOOL_POLICY_RULE@
 
@@ -46,6 +47,12 @@ update-po:
 
 # ------------------------------------------------------------------------------
 
+AM_V_XSLT   = $(AM_V_XSLT_$(V))
+AM_V_XSLT_  = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
+AM_V_XSLT_0 = @echo "  XSLT    " $@;
+
+# ------------------------------------------------------------------------------
+
 dist_doc_DATA = \
        COPYING
 
@@ -76,6 +83,58 @@ ddnsdir = $(pythondir)/ddns
 
 # ------------------------------------------------------------------------------
 
+if ENABLE_MANPAGES
+MANPAGES = \
+       man/ddns.1 \
+       man/ddns.conf.5
+
+MANPAGES_XML  = $(patsubst %.1,%.xml,$(patsubst %.5,%.xml,$(MANPAGES)))
+MANPAGES_HTML = $(patsubst %.xml,%.html,$(MANPAGES_XML))
+
+man: $(MANPAGES) $(MANPAGES_HTML)
+
+man_MANS = \
+       $(MANPAGES)
+
+noinst_DATA += \
+       $(MANPAGES_HTML)
+
+CLEANFILES += \
+       $(man_MANS) \
+       $(MANPAGES_HTML)
+
+EXTRA_DIST += \
+       $(MANPAGES_XML) \
+       man/custom-html.xsl
+
+XSLTPROC_FLAGS = \
+       --nonet \
+       --stringparam man.output.quietly 1 \
+       --stringparam funcsynopsis.style ansi \
+       --stringparam man.th.extra1.suppress 1 \
+       --stringparam man.authors.section.enabled 1 \
+       --stringparam man.copyright.section.enabled 1
+
+XSLTPROC_COMMAND_MAN = \
+       $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
+               http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+XSLTPROC_COMMAND_HTML = \
+       $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
+
+man/%.1: man/%.xml
+       $(XSLTPROC_COMMAND_MAN)
+
+man/%.5: man/%.xml
+       $(XSLTPROC_COMMAND_MAN)
+
+man/%.html: man/%.xml man/custom-html.xsl
+       $(XSLTPROC_COMMAND_HTML)
+
+endif
+
+# ------------------------------------------------------------------------------
+
 substitutions = \
        '|PACKAGE_NAME=$(PACKAGE_NAME)|' \
        '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
index 7f4c61b4e7dffbe2d614821b9aa174fd53cf6a29..c3f7b4a76bd0275320832445d99cc6b3b8f1925c 100644 (file)
@@ -51,11 +51,22 @@ AC_PROG_LN_S
 AC_PROG_MKDIR_P
 AC_PROG_SED
 
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+
 # Python
 AM_PATH_PYTHON([2.7])
 
 save_LIBS="$LIBS"
 
+# ------------------------------------------------------------------------------
+have_manpages=no
+AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-man-pages],
+       [do not install man pages]))
+AS_IF([test "x$enable_manpages" != xno], [have_manpages=yes])
+AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"])
+
+# ------------------------------------------------------------------------------
+
 AC_CONFIG_FILES([
        Makefile
        po/Makefile.in
@@ -68,4 +79,6 @@ AC_MSG_RESULT([
 
        prefix            : ${prefix}
        sysconfdir        : ${sysconfdir}
+
+       Generate man-pages : ${have_manpages}
 ])
diff --git a/man/custom-html.xsl b/man/custom-html.xsl
new file mode 100644 (file)
index 0000000..fe2b54e
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+
+<!-- translate man page references to links to html pages -->
+<xsl:template match="citerefentry">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:value-of select="refentrytitle"/><xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="inline.charseq"/>
+  </a>
+</xsl:template>
+
+<!-- add Index link at top of page -->
+<xsl:template name="user.header.content">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>index.html</xsl:text>
+    </xsl:attribute>
+    <xsl:text>Index</xsl:text>
+  </a>
+  <hr/>
+</xsl:template>
+
+<!-- Switch things to UTF-8, ISO-8859-1 is soo yesteryear -->
+<xsl:output method="html" encoding="UTF-8" indent="no"/>
+
+</xsl:stylesheet>
diff --git a/man/ddns.conf.xml b/man/ddns.conf.xml
new file mode 100644 (file)
index 0000000..9b113bc
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS/DTD DocBook XML V4.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<refentry id="ddns.conf">
+       <refentryinfo>
+               <title>ddns.conf</title>
+               <productname>ddns</productname>
+
+               <authorgroup>
+                       <author>
+                               <contrib>Developer</contrib>
+                               <firstname>Stefan</firstname>
+                               <surname>Schantl</surname>
+                               <email>stefan.schantl@ipfire.org</email>
+                       </author>
+
+                       <author>
+                               <contrib>Developer</contrib>
+                               <firstname>Michael</firstname>
+                               <surname>Tremer</surname>
+                               <email>michael.tremer@ipfire.org</email>
+                       </author>
+               </authorgroup>
+       </refentryinfo>
+
+       <refmeta>
+               <refentrytitle>ddns.conf</refentrytitle>
+               <manvolnum>5</manvolnum>
+       </refmeta>
+
+       <refnamediv>
+               <refname>ddns.conf</refname>
+               <refpurpose>Configuration file for the DDNS update client</refpurpose>
+       </refnamediv>
+
+       <refsect1>
+               <title>Description</title>
+
+               <para>
+                       The <filename>ddns.conf</filename> file is the main configuration file of the
+                       <command>ddns</command> update client.
+                       This file specifies runtime configuration parameters for the programm and
+                       contains configurations for dynamic host entries that are managed by
+                       <command>ddns</command>.
+               </para>
+
+               <para>
+                       The syntax of the configuration file is based on the INI configuration
+                       file format. Lines starting with hash (#) or semi-colon (;)
+                       are ignored.
+               </para>
+       </refsect1>
+
+       <refsect1>
+               <title>Options</title>
+
+               <para>
+                       The following options can be configured:
+               </para>
+
+               <variablelist>
+                       <varlistentry>
+                               <term>
+                                       <option>proxy = http://IP:PORT</option>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               This option will configure the HTTP proxy server that is used to
+                                               communicate with the providers HTTP APIs.
+                                       </para>
+
+                                       <para>
+                                               The proxy only can be contacted by using the HTTP protocol. The
+                                               server has to be specified by using its IP address and port.
+                                               For example: <option>proxy = http://192.168.180.1:800</option>
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <option>guess_external_ip = [true|<emphasis>false</emphasis>]</option>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Determine the public IP addresses by using external servers.
+                                       </para>
+
+                                       <para>
+                                               By default, this option is disabled and automatically enabled
+                                               if the client has only IP addresses defined in RFC1918 or
+                                               other reserved address space.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+               </variablelist>
+       </refsect1>
+
+       <refsect1>
+               <title>Provider Configuration</title>
+
+               <para>
+                       The DDNS client supports the configuration of an unlimited amount of entries for different providers.
+                       Each entry has to be configured as an own section named by the FQDN (Fully Qualified Domain Name)
+                       inside squared brackets.
+               </para>
+
+               <variablelist>
+                       <varlistentry>
+                               <term>
+                                       <command>[hostname.someprovider.com]</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               The FQDN of the dynamic host. This name will be resolved
+                                               by <command>ddns</command> and therfore must not be a handle or something
+                                               other than a FQDN.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>handle = someprovider.com</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               The provider which is responsible for this host.
+                                       </para>
+
+                                       <para>
+                                               A list of all supported providers can be looked up by running
+                                               <command>ddns list-providers</command>.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>username = user</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               The username to authenticate against the provider's update service.
+                                       </para>
+
+                                       <para>
+                                               In most cases this will be the same username which can be used to login on
+                                               your provider's web page.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>password = password</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               The choosen password for the specified username.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>token = token</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               An authentication token.
+                                       </para>
+
+                                       <para>
+                                               If your dynamic DNS provider supports token-based authentication,
+                                               this method should be prefered.
+                                               You do not need to specify the username if token-based authentication
+                                               is used.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+               </variablelist>
+       </refsect1>
+
+       <refsect1>
+               <title>Examples</title>
+
+               <example>
+                       <title>For providers which use username and password for client authentication</title>
+
+                       <simplelist>
+                               <member>[somehost.provider.com]</member>
+                               <member>handle = provider.com</member>
+                               <member>username = username</member>
+                               <member>password = password</member>
+                       </simplelist>
+               </example>
+
+               <example>
+                       <title>For providers which supports token-based authentication</title>
+
+                       <simplelist>
+                               <member>[anotherhost.provider.com]</member>
+                               <member>handle = provider.com</member>
+                               <member>token = token</member>
+                       </simplelist>
+               </example>
+       </refsect1>
+
+       <refsect1>
+               <title>Bugs</title>
+
+               <para>
+                       Please report all bugs to the official bugtracker at
+                       http://bugs.ipfire.org/.
+               </para>
+       </refsect1>
+
+       <refsect1>
+               <title>See Also</title>
+
+               <para>
+                       <citerefentry>
+                               <refentrytitle>ddns</refentrytitle>
+                               <manvolnum>1</manvolnum>
+                       </citerefentry>
+               </para>
+       </refsect1>
+</refentry>
diff --git a/man/ddns.xml b/man/ddns.xml
new file mode 100644 (file)
index 0000000..dda4b94
--- /dev/null
@@ -0,0 +1,229 @@
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS/DTD DocBook XML V4.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<refentry id="ddns">
+       <refentryinfo>
+               <title>ddns</title>
+               <productname>ddns</productname>
+
+               <authorgroup>
+                       <author>
+                               <contrib>Developer</contrib>
+                               <firstname>Stefan</firstname>
+                               <surname>Schantl</surname>
+                               <email>stefan.schantl@ipfire.org</email>
+                       </author>
+
+                       <author>
+                               <contrib>Developer</contrib>
+                               <firstname>Michael</firstname>
+                               <surname>Tremer</surname>
+                               <email>michael.tremer@ipfire.org</email>
+                       </author>
+               </authorgroup>
+       </refentryinfo>
+
+       <refmeta>
+               <refentrytitle>ddns</refentrytitle>
+               <manvolnum>1</manvolnum>
+       </refmeta>
+
+       <refnamediv>
+               <refname>ddns</refname>
+               <refpurpose>Dynamic DNS update client</refpurpose>
+       </refnamediv>
+
+       <refsynopsisdiv>
+               <cmdsynopsis>
+                       <command>ddns</command>
+                       <arg choice="opt" rep="repeat">OPTIONS</arg>
+                       <arg choice="plain">COMMAND</arg>
+               </cmdsynopsis>
+       </refsynopsisdiv>
+
+       <refsect1>
+               <title>Description</title>
+
+               <para>
+                       <command>ddns</command> is a simple, extensible, cross-distribution,
+                       cross-platform dynamic DNS updater written in Python.
+               </para>
+       </refsect1>
+
+       <refsect1>
+               <title>Options</title>
+
+               <para>
+                       The following options are understood:
+               </para>
+
+               <variablelist>
+                       <varlistentry>
+                               <term>
+                                       <option>-c CONFIG</option>
+                               </term>
+                               <term>
+                                       <option>--config CONFIG</option>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Load the specified configuration file.
+                                               (Default: <filename>/etc/ddns/ddns.conf</filename>)
+                                       </para>
+
+                                       <para>
+                                               For further details of the config file layout, please consult the
+                                               <citerefentry>
+                                                       <refentrytitle>ddns.conf</refentrytitle>
+                                                       <manvolnum>5</manvolnum>
+                                               </citerefentry>
+                                               manual page.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <option>-d</option>
+                               </term>
+                               <term>
+                                       <option>--debug</option>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Enables the debugging output.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <option>-h</option>
+                               </term>
+                               <term>
+                                       <option>--help</option>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Shows the help message provided by the program and exit.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+               </variablelist>
+       </refsect1>
+
+       <refsect1>
+               <title>Commands</title>
+
+               <para>
+                       The following commands are understood:
+               </para>
+
+               <variablelist>
+
+                       <varlistentry>
+                               <term>
+                                       <command>update <option>[--force]</option> <replaceable>HOSTNAME</replaceable></command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Perform an update for a single host, specified by the
+                                               given hostname.
+                                       </para>
+
+                                       <para>
+                                               When calling an update, the DDNS client automatically checks
+                                               if this update is required by testing whether the hostname points
+                                               to the current public IP address.
+                                               Therefore it is not guaranteed than an update is performed.
+                                       </para>
+
+                                       <para>
+                                               The <option>--force</option> switch can be used to skip that
+                                               check and perform an update. Please note that some providers
+                                               may block your account if unnecessary updates are repeatedly
+                                               performed.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>update-all <option>[--force]</option></command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Update all configured dynamic DNS hosts when an update is necessary.
+                                       </para>
+
+                                       <para>
+                                               The <option>--force</option> switch has the same effect as
+                                               with the <command>update</command> command.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>guess-ip-addresses</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               Guesses the public IPv6 and IPv4 addresses with help of an
+                                               external server and prints them on the conole.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+
+                       <varlistentry>
+                               <term>
+                                       <command>list-providers</command>
+                               </term>
+
+                               <listitem>
+                                       <para>
+                                               This command will print out a list of all
+                                               supported dynamic DNS providers.
+                                       </para>
+                               </listitem>
+                       </varlistentry>
+               </variablelist>
+       </refsect1>
+
+       <refsect1>
+               <title>Exit Codes</title>
+
+               <para>
+                       <command>ddns</command> will normally exit with code 0.
+                       If there has been a problem and the requested action could not be done,
+                       the exit code is unequal to zero.
+               </para>
+       </refsect1>
+
+       <refsect1>
+               <title>Bugs</title>
+
+               <para>
+                       Please report all bugs to the official bugtracker at
+                       http://bugs.ipfire.org/.
+               </para>
+       </refsect1>
+
+       <refsect1>
+               <title>See Also</title>
+
+               <para>
+                       <citerefentry>
+                               <refentrytitle>ddns.conf</refentrytitle>
+                               <manvolnum>5</manvolnum>
+                       </citerefentry>
+               </para>
+       </refsect1>
+</refentry>