diff options
author | Michael Paquier <michael@paquier.xyz> | 2023-06-30 15:47:11 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2023-06-30 15:47:11 +0900 |
commit | dd7c60f1935ad3354bc77de09431313d7b0719ef (patch) | |
tree | de51401205ddf6610d76454356b870878f387022 | |
parent | cfc43aeb3810ebaa8dbda4807046a4c953d9e992 (diff) | |
download | postgresql-dd7c60f1935ad3354bc77de09431313d7b0719ef.tar.gz postgresql-dd7c60f1935ad3354bc77de09431313d7b0719ef.zip |
Introduce long options in pg_archivecleanup
This patch is a preliminary refactoring for an upcoming patch aimed at
adding new options to this tool, and using long options for these is
more user-friendly. The existing short options gain long flavors, as
of:
* -d/--debug
* -n/--dry-run
* -x/--strip-extension
Author: Atsushi Torikoshi
Reviewed-by: Fujii Masao, Kyotaro Horiguchi, Michael Paquier
Discussion: https://postgr.es/m/d660ef741ce3d82f3b4283f1cafd576c@oss.nttdata.com
-rw-r--r-- | doc/src/sgml/ref/pgarchivecleanup.sgml | 5 | ||||
-rw-r--r-- | src/bin/pg_archivecleanup/pg_archivecleanup.c | 22 |
2 files changed, 19 insertions, 8 deletions
diff --git a/doc/src/sgml/ref/pgarchivecleanup.sgml b/doc/src/sgml/ref/pgarchivecleanup.sgml index 635e7c76854..09991c2fcdd 100644 --- a/doc/src/sgml/ref/pgarchivecleanup.sgml +++ b/doc/src/sgml/ref/pgarchivecleanup.sgml @@ -95,6 +95,7 @@ pg_archivecleanup: removing file "archive/00000001000000370000000E" <varlistentry> <term><option>-d</option></term> + <term><option>--debug</option></term> <listitem> <para> Print lots of debug logging output on <filename>stderr</filename>. @@ -104,6 +105,7 @@ pg_archivecleanup: removing file "archive/00000001000000370000000E" <varlistentry> <term><option>-n</option></term> + <term><option>--dry-run</option></term> <listitem> <para> Print the names of the files that would have been removed on <filename>stdout</filename> (performs a dry run). @@ -122,7 +124,8 @@ pg_archivecleanup: removing file "archive/00000001000000370000000E" </varlistentry> <varlistentry> - <term><option>-x</option> <replaceable>extension</replaceable></term> + <term><option>-x <replaceable class="parameter">extension</replaceable></option></term> + <term><option>--strip-extension=<replaceable class="parameter">extension</replaceable></option></term> <listitem> <para> Provide an extension diff --git a/src/bin/pg_archivecleanup/pg_archivecleanup.c b/src/bin/pg_archivecleanup/pg_archivecleanup.c index 7726d051499..fc0dca98568 100644 --- a/src/bin/pg_archivecleanup/pg_archivecleanup.c +++ b/src/bin/pg_archivecleanup/pg_archivecleanup.c @@ -17,7 +17,7 @@ #include "access/xlog_internal.h" #include "common/logging.h" -#include "pg_getopt.h" +#include "getopt_long.h" const char *progname; @@ -252,11 +252,13 @@ usage(void) printf(_("Usage:\n")); printf(_(" %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n"), progname); printf(_("\nOptions:\n")); - printf(_(" -d generate debug output (verbose mode)\n")); - printf(_(" -n dry run, show the names of the files that would be removed\n")); - printf(_(" -V, --version output version information, then exit\n")); - printf(_(" -x EXT clean up files if they have this extension\n")); - printf(_(" -?, --help show this help, then exit\n")); + printf(_(" -d, --debug generate debug output (verbose mode)\n")); + printf(_(" -n, --dry-run dry run, show the names of the files that would be\n" + " removed\n")); + printf(_(" -V, --version output version information, then exit\n")); + printf(_(" -x, --strip-extension=EXT strip this extention before identifying files for\n" + " clean up\n")); + printf(_(" -?, --help show this help, then exit\n")); printf(_("\n" "For use as archive_cleanup_command in postgresql.conf:\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n" @@ -274,6 +276,12 @@ usage(void) int main(int argc, char **argv) { + static struct option long_options[] = { + {"debug", no_argument, NULL, 'd'}, + {"dry-run", no_argument, NULL, 'n'}, + {"strip-extension", required_argument, NULL, 'x'}, + {NULL, 0, NULL, 0} + }; int c; pg_logging_init(argv[0]); @@ -294,7 +302,7 @@ main(int argc, char **argv) } } - while ((c = getopt(argc, argv, "dnx:")) != -1) + while ((c = getopt_long(argc, argv, "dnx:", long_options, NULL)) != -1) { switch (c) { |