From adc9eb7433763d09051acdb3c41cad708beed82f Mon Sep 17 00:00:00 2001
From: Peter Smith <peter.b.smith@fujitsu.com>
Date: Thu, 13 Mar 2025 12:50:57 +1100
Subject: [PATCH v2] Synopsis improvements for server applications

---
 doc/src/sgml/docguide.sgml                | 27 ++++++++++++++++++++
 doc/src/sgml/ref/initdb.sgml              | 12 +++------
 doc/src/sgml/ref/pg_checksums.sgml        |  8 +-----
 doc/src/sgml/ref/pg_controldata.sgml      | 10 ++------
 doc/src/sgml/ref/pg_createsubscriber.sgml | 42 +++++++++++--------------------
 doc/src/sgml/ref/pg_resetwal.sgml         | 18 +++----------
 doc/src/sgml/ref/pg_rewind.sgml           | 20 ++++++---------
 doc/src/sgml/ref/pg_waldump.sgml          |  4 +--
 doc/src/sgml/ref/pg_walsummary.sgml       | 14 +++++++++--
 doc/src/sgml/ref/pgupgrade.sgml           |  9 +++----
 10 files changed, 74 insertions(+), 90 deletions(-)

diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml
index db4bcce..ce7c231 100644
--- a/doc/src/sgml/docguide.sgml
+++ b/doc/src/sgml/docguide.sgml
@@ -516,6 +516,33 @@ LOGLEVEL=-Dorg.apache.commons.logging.simplelog.defaultlog=WARN
         that is done below.  Instead, list the major components of the
         command line, such as where input and output files go.
        </para>
+
+       <para>
+        Below are some addtional recommendations for an application synopsis:
+        <itemizedlist>
+         <listitem>
+          <para>
+           Options sometimes have short/long name variations. When there is a
+           self-descriptive argument show only the short option name, otherwise
+           show only the long option name.
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           Options with arguments that can be obtained from enviromnent
+           variables should be shown as optional.
+           For example, <literal>[-D datadir]</literal>
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           Options that are common across multiple applications should also
+           have consistent argument names. For example,
+           <replaceable>datadir</replaceable> and <replaceable>filename</replaceable>.
+          </para>
+         </listitem>
+        </itemizedlist>
+       </para>
       </listitem>
      </varlistentry>
 
diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml
index 0026318..09fd08f 100644
--- a/doc/src/sgml/ref/initdb.sgml
+++ b/doc/src/sgml/ref/initdb.sgml
@@ -23,13 +23,7 @@ PostgreSQL documentation
   <cmdsynopsis>
    <command>initdb</command>
    <arg rep="repeat"><replaceable>option</replaceable></arg>
-   <group choice="plain">
-    <group choice="opt">
-     <arg choice="plain"><option>--pgdata</option></arg>
-     <arg choice="plain"><option>-D</option></arg>
-    </group>
-    <replaceable> directory</replaceable>
-   </group>
+   <arg choice="opt"><option>-D</option> <replaceable>datadir</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
@@ -190,8 +184,8 @@ PostgreSQL documentation
      </varlistentry>
 
      <varlistentry id="app-initdb-option-pgdata">
-      <term><option>-D <replaceable class="parameter">directory</replaceable></option></term>
-      <term><option>--pgdata=<replaceable class="parameter">directory</replaceable></option></term>
+      <term><option>-D <replaceable class="parameter">datadir</replaceable></option></term>
+      <term><option>--pgdata=<replaceable class="parameter">datadir</replaceable></option></term>
       <listitem>
        <para>
         This option specifies the directory where the database cluster
diff --git a/doc/src/sgml/ref/pg_checksums.sgml b/doc/src/sgml/ref/pg_checksums.sgml
index 95043aa..60e9552 100644
--- a/doc/src/sgml/ref/pg_checksums.sgml
+++ b/doc/src/sgml/ref/pg_checksums.sgml
@@ -23,13 +23,7 @@ PostgreSQL documentation
   <cmdsynopsis>
    <command>pg_checksums</command>
    <arg rep="repeat" choice="opt"><replaceable class="parameter">option</replaceable></arg>
-   <group choice="opt">
-    <group choice="opt">
-     <arg choice="plain"><option>-D</option></arg>
-     <arg choice="plain"><option>--pgdata</option></arg>
-    </group>
-    <replaceable class="parameter">datadir</replaceable>
-   </group>
+   <arg choice="opt"><option>-D</option> <replaceable class="parameter">datadir</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
diff --git a/doc/src/sgml/ref/pg_controldata.sgml b/doc/src/sgml/ref/pg_controldata.sgml
index b47fdca..9a0f1d1 100644
--- a/doc/src/sgml/ref/pg_controldata.sgml
+++ b/doc/src/sgml/ref/pg_controldata.sgml
@@ -22,14 +22,8 @@ PostgreSQL documentation
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>pg_controldata</command>
-   <arg choice="opt"><replaceable class="parameter">option</replaceable></arg>
-   <group choice="opt">
-    <group choice="opt">
-     <arg choice="plain"><option>-D</option></arg>
-     <arg choice="plain"><option>--pgdata</option></arg>
-    </group>
-    <replaceable class="parameter">datadir</replaceable>
-   </group>
+   <arg rep="repeat" choice="opt"><replaceable class="parameter">option</replaceable></arg>
+   <arg choice="opt"><option>-D</option> <replaceable class="parameter">datadir</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
diff --git a/doc/src/sgml/ref/pg_createsubscriber.sgml b/doc/src/sgml/ref/pg_createsubscriber.sgml
index b4b9962..430c04e 100644
--- a/doc/src/sgml/ref/pg_createsubscriber.sgml
+++ b/doc/src/sgml/ref/pg_createsubscriber.sgml
@@ -23,23 +23,9 @@ PostgreSQL documentation
   <cmdsynopsis>
    <command>pg_createsubscriber</command>
    <arg rep="repeat"><replaceable>option</replaceable></arg>
-   <group choice="plain">
-    <group choice="req">
-     <arg choice="plain"><option>-d</option></arg>
-     <arg choice="plain"><option>--database</option></arg>
-    </group>
-    <replaceable>dbname</replaceable>
-    <group choice="req">
-     <arg choice="plain"><option>-D</option> </arg>
-     <arg choice="plain"><option>--pgdata</option></arg>
-    </group>
-    <replaceable>datadir</replaceable>
-    <group choice="req">
-     <arg choice="plain"><option>-P</option></arg>
-     <arg choice="plain"><option>--publisher-server</option></arg>
-    </group>
-    <replaceable>connstr</replaceable>
-   </group>
+   <arg choice="opt"><option>-D</option> <replaceable>datadir</replaceable></arg>
+   <arg choice="req"><option>-d</option> <replaceable>dbname</replaceable></arg>
+   <arg choice="req"><option>-P</option> <replaceable>connstr</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
@@ -88,6 +74,17 @@ PostgreSQL documentation
 
    <variablelist>
     <varlistentry>
+     <term><option>-D <replaceable class="parameter">datadir</replaceable></option></term>
+     <term><option>--pgdata=<replaceable class="parameter">datadir</replaceable></option></term>
+     <listitem>
+      <para>
+       The target directory that contains a cluster directory from a physical
+       replica.
+      </para>
+     </listitem>
+    </varlistentry>
+
+    <varlistentry>
      <term><option>-d <replaceable class="parameter">dbname</replaceable></option></term>
      <term><option>--database=<replaceable class="parameter">dbname</replaceable></option></term>
      <listitem>
@@ -103,17 +100,6 @@ PostgreSQL documentation
     </varlistentry>
 
     <varlistentry>
-     <term><option>-D <replaceable class="parameter">directory</replaceable></option></term>
-     <term><option>--pgdata=<replaceable class="parameter">directory</replaceable></option></term>
-     <listitem>
-      <para>
-       The target directory that contains a cluster directory from a physical
-       replica.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
      <term><option>-n</option></term>
      <term><option>--dry-run</option></term>
      <listitem>
diff --git a/doc/src/sgml/ref/pg_resetwal.sgml b/doc/src/sgml/ref/pg_resetwal.sgml
index dd011d2..7acb00d 100644
--- a/doc/src/sgml/ref/pg_resetwal.sgml
+++ b/doc/src/sgml/ref/pg_resetwal.sgml
@@ -22,22 +22,10 @@ PostgreSQL documentation
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>pg_resetwal</command>
-   <group choice="opt">
-    <arg choice="plain"><option>-f</option></arg>
-    <arg choice="plain"><option>--force</option></arg>
-   </group>
-   <group choice="opt">
-    <arg choice="plain"><option>-n</option></arg>
-    <arg choice="plain"><option>--dry-run</option></arg>
-   </group>
+   <arg choice="opt"><option>--force</option></arg>
+   <arg choice="opt"><option>--dry-run</option></arg>
    <arg rep="repeat"><replaceable>option</replaceable></arg>
-   <group choice="plain">
-    <group choice="opt">
-     <arg choice="plain"><option>-D</option></arg>
-     <arg choice="plain"><option>--pgdata</option></arg>
-    </group>
-    <replaceable class="parameter">datadir</replaceable>
-   </group>
+   <arg choice="opt"><option>-D</option> <replaceable>datadir</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
diff --git a/doc/src/sgml/ref/pg_rewind.sgml b/doc/src/sgml/ref/pg_rewind.sgml
index dc039d8..231f0f0 100644
--- a/doc/src/sgml/ref/pg_rewind.sgml
+++ b/doc/src/sgml/ref/pg_rewind.sgml
@@ -23,16 +23,10 @@ PostgreSQL documentation
   <cmdsynopsis>
    <command>pg_rewind</command>
    <arg rep="repeat"><replaceable>option</replaceable></arg>
-   <group choice="plain">
-    <group choice="req">
-     <arg choice="plain"><option>-D</option></arg>
-     <arg choice="plain"><option>--target-pgdata</option></arg>
-    </group>
-    <replaceable> directory</replaceable>
-    <group choice="req">
-     <arg choice="plain"><option>--source-pgdata=<replaceable>directory</replaceable></option></arg>
-     <arg choice="plain"><option>--source-server=<replaceable>connstr</replaceable></option></arg>
-    </group>
+   <arg choice="opt"><option>-D</option> <replaceable>datadir</replaceable></arg>
+   <group choice="req">
+    <arg choice="plain"><option>--source-pgdata=<replaceable>datadir</replaceable></option></arg>
+    <arg choice="plain"><option>--source-server=<replaceable>connstr</replaceable></option></arg>
    </group>
   </cmdsynopsis>
  </refsynopsisdiv>
@@ -142,8 +136,8 @@ PostgreSQL documentation
 
     <variablelist>
      <varlistentry>
-      <term><option>-D <replaceable class="parameter">directory</replaceable></option></term>
-      <term><option>--target-pgdata=<replaceable class="parameter">directory</replaceable></option></term>
+      <term><option>-D <replaceable class="parameter">datadir</replaceable></option></term>
+      <term><option>--target-pgdata=<replaceable class="parameter">datadir</replaceable></option></term>
       <listitem>
        <para>
         This option specifies the target data directory that is synchronized
@@ -154,7 +148,7 @@ PostgreSQL documentation
      </varlistentry>
 
      <varlistentry>
-      <term><option>--source-pgdata=<replaceable class="parameter">directory</replaceable></option></term>
+      <term><option>--source-pgdata=<replaceable class="parameter">datadir</replaceable></option></term>
       <listitem>
        <para>
         Specifies the file system path to the data directory of the source
diff --git a/doc/src/sgml/ref/pg_waldump.sgml b/doc/src/sgml/ref/pg_waldump.sgml
index ce23add..d1715ff 100644
--- a/doc/src/sgml/ref/pg_waldump.sgml
+++ b/doc/src/sgml/ref/pg_waldump.sgml
@@ -22,8 +22,8 @@ PostgreSQL documentation
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>pg_waldump</command>
-   <arg rep="repeat" choice="opt"><option>option</option></arg>
-   <arg choice="opt"><option>startseg</option><arg choice="opt"><option>endseg</option></arg></arg>
+   <arg rep="repeat" choice="opt"><replaceable>option</replaceable></arg>
+   <arg choice="opt"><replaceable>startseg</replaceable><arg choice="opt"><replaceable>endseg</replaceable></arg></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
diff --git a/doc/src/sgml/ref/pg_walsummary.sgml b/doc/src/sgml/ref/pg_walsummary.sgml
index 57b2d24..9bc1b7a 100644
--- a/doc/src/sgml/ref/pg_walsummary.sgml
+++ b/doc/src/sgml/ref/pg_walsummary.sgml
@@ -23,7 +23,7 @@ PostgreSQL documentation
   <cmdsynopsis>
    <command>pg_walsummary</command>
    <arg rep="repeat" choice="opt"><replaceable>option</replaceable></arg>
-   <arg rep="repeat"><replaceable>file</replaceable></arg>
+   <arg rep="repeat"><replaceable>filename</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
@@ -31,7 +31,7 @@ PostgreSQL documentation
   <title>Description</title>
   <para>
    <application>pg_walsummary</application> is used to print the contents of
-   WAL summary files. These binary files are found with the
+   WAL summary files. These binary files are found in the
    <literal>pg_wal/summaries</literal> subdirectory of the data directory,
    and can be converted to text using this tool. This is not ordinarily
    necessary, since WAL summary files primarily exist to support
@@ -57,6 +57,16 @@ PostgreSQL documentation
    <para>
     <variablelist>
      <varlistentry>
+      <term><replaceable class="parameter">filename</replaceable></term>
+      <listitem>
+       <para>
+        A binary WAL summary file, found in the <literal>pg_wal/summaries</literal>
+        subdirectory of the data directory.
+       </para>
+      </listitem>
+     </varlistentry>
+
+     <varlistentry>
       <term><option>-i</option></term>
       <term><option>--individual</option></term>
       <listitem>
diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml
index 9ef7a84..92d3294 100644
--- a/doc/src/sgml/ref/pgupgrade.sgml
+++ b/doc/src/sgml/ref/pgupgrade.sgml
@@ -22,13 +22,10 @@ PostgreSQL documentation
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>pg_upgrade</command>
-   <arg choice="plain"><option>-b</option></arg>
-   <arg choice="plain"><replaceable>oldbindir</replaceable></arg>
+   <arg choice="opt"><option>-b</option> <replaceable>oldbindir</replaceable></arg>
    <arg choice="opt"><option>-B</option> <replaceable>newbindir</replaceable></arg>
-   <arg choice="plain"><option>-d</option></arg>
-   <arg choice="plain"><replaceable>oldconfigdir</replaceable></arg>
-   <arg choice="plain"><option>-D</option></arg>
-   <arg choice="plain"><replaceable>newconfigdir</replaceable></arg>
+   <arg choice="opt"><option>-d</option> <replaceable>oldconfigdir</replaceable></arg>
+   <arg choice="opt"><option>-D</option> <replaceable>newconfigdir</replaceable></arg>
    <arg rep="repeat"><replaceable>option</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
-- 
1.8.3.1

