[libnotify/wip/jtojnar/manpage: 2/2] Add notify-send manpage



commit 162d1958694822658dfa27e3dd1c702dee4c285c
Author: Jan Tojnar <jtojnar gmail com>
Date:   Thu Jan 31 20:24:45 2019 +0100

    Add notify-send manpage
    
    Taken from Debian, converted to Docbook and fixed some issues.
    
    Closes: https://gitlab.gnome.org/GNOME/libnotify/issues/4

 .gitlab-ci.yml       |   2 +
 docs/meson.build     |  13 +++++++
 docs/notify-send.xml | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++
 meson.build          |  22 +++++++++++
 meson_options.txt    |   4 ++
 5 files changed, 143 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 33804f4..8915c7d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -36,6 +36,8 @@ build:ubuntu:meson:
         ninja-build
         python3-pip
         python3-setuptools
+        xsltproc
+        docbook-xsl-ns
     - pip3 install meson
   script:
     - meson _build -Dgtk_doc=true -Ddocbook_docs=enabled -Dtests=true
diff --git a/docs/meson.build b/docs/meson.build
index 6429576..4c5ba64 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -25,3 +25,16 @@ endif
 if get_option('gtk_doc')
   subdir('reference')
 endif
+
+if get_option('man')
+  manpages = ['notify-send']
+
+  foreach page : manpages
+    custom_target(page + '-man',
+      input: page + '.xml',
+      output: page + '.1',
+      command: xsltproc_command,
+      install: true,
+      install_dir: man1dir)
+  endforeach
+endif
diff --git a/docs/notify-send.xml b/docs/notify-send.xml
new file mode 100644
index 0000000..614b48b
--- /dev/null
+++ b/docs/notify-send.xml
@@ -0,0 +1,102 @@
+<refentry xmlns="http://docbook.org/ns/docbook"; version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <info>
+    <date>November 2005</date>
+    <productname>libnotify</productname>
+    <authorgroup>
+      <author>
+        <personname>Andre Filipe de Assuncao e Brito</personname>
+        <email>decko noisemakers org</email>
+        <contrib>Original author</contrib>
+      </author>
+      <author>
+        <personname>Paul van Tilburg</personname>
+        <email>paulvt debian org</email>
+        <contrib>Original author</contrib>
+      </author>
+      <author>
+        <personname>Riccardo Setti</personname>
+        <email>giskard debian org</email>
+        <contrib>Original author</contrib>
+      </author>
+    </authorgroup>
+  </info>
+  <refmeta>
+    <refentrytitle>notify-send</refentrytitle>
+    <manvolnum>1</manvolnum>
+    <refmiscinfo class="manual">User Commands</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>notify-send</refname>
+    <refpurpose>a program to send desktop notifications</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>notify-send</command>
+      <arg choice="opt">
+        <replaceable>OPTIONS</replaceable>
+      </arg>
+      <arg choice="req">
+        <replaceable>summary</replaceable>
+      </arg>
+      <arg choice="opt">
+        <replaceable>body</replaceable>
+      </arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <info><title>Description</title></info>
+
+    <para>With <command>notify-send</command> you can send desktop notifications to the user via a 
notification daemon from the command line. These notifications can be used to inform the user about an event 
or display some form of information without getting in the user’s way.</para>
+  </refsection>
+  <refsection>
+    <info><title>Options</title></info>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-?</option>, <option>--help</option></term>
+        <listitem>
+          <para>Show help and exit.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-u</option>, <option>--urgency</option>=<replaceable>LEVEL</replaceable></term>
+        <listitem>
+          <para>Specifies the urgency level (<literal>low</literal>, <literal>normal</literal>, 
<literal>critical</literal>).</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-t</option>, <option>--expire-time</option>=<replaceable>TIME</replaceable>
+        </term>
+        <listitem>
+          <para>The duration, in milliseconds, for the notification to appear on screen.</para>
+          <para>(Ubuntu's Notify OSD and GNOME Shell both ignore this parameter.)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-i</option>, 
<option>--icon</option>=<replaceable>ICON</replaceable>[,<replaceable>ICON</replaceable>…]
+        </term>
+        <listitem>
+          <para>Specifies an icon filename or stock icon to display.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-c</option>, 
<option>--category</option>=<replaceable>TYPE</replaceable>[,<replaceable>TYPE</replaceable>…]
+        </term>
+        <listitem>
+          <para>Specifies the notification category.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-h</option>, 
<option>--hint</option>=<replaceable>TYPE</replaceable>:<replaceable>NAME</replaceable>:<replaceable>VALUE</replaceable>
 </term>
+        <listitem>
+          <para>Specifies basic extra data to pass. Valid types are <literal>INT</literal>, 
<literal>DOUBLE</literal>, <literal>STRING</literal> and <literal>BYTE</literal>.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <info><title>See also</title></info>
+
+    <para>The Desktop Notification Spec on <link 
xlink:href="http://www.galago-project.org/specs/notification/";>http://www.galago-project.org/specs/notification/</link>.</para>
+  </refsection>
+</refentry>
diff --git a/meson.build b/meson.build
index 82f3bb5..5063fe5 100644
--- a/meson.build
+++ b/meson.build
@@ -31,6 +31,7 @@ default_includes = include_directories('.')
 prefix = get_option('prefix')
 includedir = join_paths(prefix, get_option('includedir'))
 docdir = join_paths(prefix, get_option('datadir'), 'doc', meson.project_name())
+man1dir = join_paths(prefix, get_option('mandir'), 'man1')
 
 libnotify_deps = []
 extra_deps = []
@@ -51,6 +52,27 @@ configure_file(input: 'config.h.meson',
   output : 'config.h',
   configuration : conf)
 
+if get_option('man')
+  xsltproc = find_program('xsltproc', required: true)
+  stylesheet = 'http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl'
+  xsltproc_command = [
+    xsltproc,
+    '--nonet',
+    '--stringparam', 'man.output.quietly', '1',
+    '--stringparam', 'funcsynopsis.style', 'ansi',
+    '--stringparam', 'man.th.extra1.suppress', '1',
+    '-o', '@OUTPUT@',
+    stylesheet,
+    '@INPUT@',
+  ]
+
+  testrun = run_command(xsltproc, '--nonet', stylesheet)
+
+  if testrun.returncode() != 0
+    error('DocBook stylesheet for generating man pages not found, you need to install docbook-xsl-ns or 
similar package.')
+  endif
+endif
+
 subdir('libnotify')
 subdir('tools')
 subdir('docs')
diff --git a/meson_options.txt b/meson_options.txt
index c37f643..c57b364 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,6 +6,10 @@ option('introspection',
   type: 'feature',
   value: 'enabled',
   description: 'Enable GObject introspection')
+option('man',
+  type: 'boolean',
+  value: true,
+  description: 'Enable generating the manual page (depends on xsltproc)')
 option('gtk_doc',
   type: 'boolean',
   value: true,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]