[postgresql] docu: document postgresql-setup in --help a little
Pavel Raiskup
praiskup at fedoraproject.org
Mon Jan 20 08:50:08 UTC 2014
commit ca2964b709a7132089a66bacab11d9bd3203eee3
Author: Pavel Raiskup <praiskup at redhat.com>
Date: Thu Jan 9 20:16:54 2014 +0100
docu: document postgresql-setup in --help a little
Also automatically generate manual page from the help output.
Version: 9.3.2-4
postgresql-setup | 36 +++++++++++++++++++++++++++++++++++-
postgresql.spec | 9 +++++++--
2 files changed, 42 insertions(+), 3 deletions(-)
---
diff --git a/postgresql-setup b/postgresql-setup
index ca70b4d..80e2483 100644
--- a/postgresql-setup
+++ b/postgresql-setup
@@ -2,6 +2,8 @@
#
# postgresql-setup - Initialization and upgrade operations for PostgreSQL
+test x"$PGSETUP_DEBUG" != x && set -x
+
# PGVERSION is the full package version, e.g., 9.0.2
# Note: the specfile inserts the correct value during package build
PGVERSION=xxxx
@@ -25,6 +27,34 @@ if [ x"$SERVICE_NAME" = x ]; then
SERVICE_NAME=postgresql
fi
+# Pathname of the RPM distribution README
+README_RPM_DIST=xxxx
+
+USAGE_STRING=$"
+Usage: $0 {initdb|upgrade} [SERVICE_NAME]
+
+Script is aimed to help sysadmin with basic database cluster administration.
+
+The SERVICE_NAME is used for selection of proper unit configuration file; For
+more info and howto/when use this script please look at the docu file
+$README_RPM_DIST. The 'postgresql'
+string is used when no SERVICE_NAME is explicitly passed.
+
+Available operation mode:
+ initdb Create a new PostgreSQL database cluster. This is usually the
+ first action you perform after PostgreSQL server installation.
+ upgrade Upgrade PostgreSQL database cluster to be usable with new
+ server. Use this if upgraded to newer PostgreSQL major version,
+ e.g. from 9.1 to 9.2.
+
+Environment:
+ PGSETUP_INITDB_OPTIONS Options carried by this variable are passed to
+ subsequent call of \`initdb\` binary (see man
+ initdb(1)). This variable is used also during
+ 'upgrade' mode because the new cluster is actually
+ re-initialized from the old one.
+ PGSETUP_DEBUG Set to '1' if you want to see debugging output."
+
# this parsing technique fails for PGDATA pathnames containing spaces,
# but there's not much I can do about it given systemctl's output format...
PGDATA=`systemctl show -p Environment "${SERVICE_NAME}.service" |
@@ -209,8 +239,12 @@ case "$1" in
upgrade)
upgrade
;;
+ --version)
+ # note that this output is at least useful for help2man processing
+ echo "postgresql-setup $PGVERSION"
+ ;;
*)
- echo $"Usage: $0 {initdb|upgrade} [ service_name ]"
+ echo "$USAGE_STRING"
exit 2
esac
diff --git a/postgresql.spec b/postgresql.spec
index 6f4c83c..586b472 100644
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -109,7 +109,7 @@ Patch4: postgresql-config-comment.patch
Patch5: postgresql-var-run-socket.patch
Patch6: postgresql-man.patch
-BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk
+BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk help2man
BuildRequires: perl(ExtUtils::Embed), perl-devel
BuildRequires: readline-devel zlib-devel
BuildRequires: systemd-units
@@ -367,6 +367,8 @@ sed -e 's|^PGVERSION=.*$|PGVERSION=%{version}|' \
-e 's|^README_RPM_DIST=.*$|README_RPM_DIST=%{_pkgdocdir}/%(basename %{SOURCE8})|' \
<%{SOURCE9} >postgresql-setup
touch -r %{SOURCE9} postgresql-setup
+chmod +x postgresql-setup
+help2man -N -m "Postgresql RPM-dist manual" ./postgresql-setup -o postgresql-setup.1
# prep the startup check script, including insertion of some values it needs
sed -e 's|^PGVERSION=.*$|PGVERSION=%{version}|' \
@@ -634,6 +636,7 @@ install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/pgsql/tutorial
cp -p src/tutorial/* $RPM_BUILD_ROOT%{_libdir}/pgsql/tutorial
install -m 755 postgresql-setup $RPM_BUILD_ROOT%{_bindir}/postgresql-setup
+install -p -m 644 postgresql-setup.1 $RPM_BUILD_ROOT%{_mandir}/man1
install -m 755 postgresql-check-db-dir $RPM_BUILD_ROOT%{_bindir}/postgresql-check-db-dir
@@ -1041,6 +1044,7 @@ fi
%{_mandir}/man1/pg_receivexlog.*
%{_mandir}/man1/pg_resetxlog.*
%{_mandir}/man1/postgres.*
+%{_mandir}/man1/postgresql-setup.*
%{_mandir}/man1/postmaster.*
%{_datadir}/pgsql/postgres.bki
%{_datadir}/pgsql/postgres.description
@@ -1126,11 +1130,12 @@ fi
%endif
%changelog
-* Mon Jan 13 2014 Pavel Raiskup <praiskup at redhat.com> - 9.3.2-4
+* Mon Jan 20 2014 Pavel Raiskup <praiskup at redhat.com> - 9.3.2-4
- postgresql-setup(upgrade): don't stop old server when it can not be started
- postgresql-setup(initdb, upgrade): add $PGSETUP_INITDB_OPTIONS
- postgresql-setup: do not pretend 'sh' compatibility
- move script generation to proper place
+- postgresql-setup: document a little and genrate manual page
* Fri Jan 10 2014 Pavel Raiskup <praiskup at redhat.com> - 9.3.2-3
- build with -O3 on ppc64 (private #1051075)
More information about the scm-commits
mailing list