v4-0001-Rename-non-destructive-modes-in-pgindent.patch
application/octet-stream
Filename: v4-0001-Rename-non-destructive-modes-in-pgindent.patch
Type: application/octet-stream
Part: 0
Message:
Re: Add --check option to pgindent
Patch
Format: format-patch
Series: patch v4-0001
Subject: Rename non-destructive modes in pgindent
| File | + | − |
|---|---|---|
| src/tools/pgindent/pgindent | 18 | 17 |
| src/tools/pgindent/pgindent.man | 6 | 6 |
From a7a3ad02f6c61e8705ae89698ff007bc1c640ecf Mon Sep 17 00:00:00 2001
From: Daniel Gustafsson <daniel@yesql.se>
Date: Mon, 18 Dec 2023 13:22:12 +0100
Subject: [PATCH v4] Rename non-destructive modes in pgindent
This renames --silent-diff to --check and --show-diff to --diff,
in order to make the options a little bit more self-explanatory
for developers used to similar formatters/linters. --check and
--diff are also allowed to be combined.
Author: Tristan Partin <tristan@neon.tech>
Discussion: https://postgr.es/m/CXLX2XYTH9S6.140SC6Y61VD88@neon.tech
---
src/tools/pgindent/pgindent | 35 +++++++++++++++++----------------
src/tools/pgindent/pgindent.man | 12 +++++------
2 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
index bce63d95da..eb2f52f4b9 100755
--- a/src/tools/pgindent/pgindent
+++ b/src/tools/pgindent/pgindent
@@ -22,8 +22,8 @@ my $indent_opts =
my $devnull = File::Spec->devnull;
my ($typedefs_file, $typedef_str, @excludes,
- $indent, $build, $show_diff,
- $silent_diff, $help, @commits,);
+ $indent, $build, $diff,
+ $check, $help, @commits,);
$help = 0;
@@ -34,15 +34,12 @@ my %options = (
"list-of-typedefs=s" => \$typedef_str,
"excludes=s" => \@excludes,
"indent=s" => \$indent,
- "show-diff" => \$show_diff,
- "silent-diff" => \$silent_diff,);
+ "diff" => \$diff,
+ "check" => \$check,);
GetOptions(%options) || usage("bad command line argument");
usage() if $help;
-usage("Cannot have both --silent-diff and --show-diff")
- if $silent_diff && $show_diff;
-
usage("Cannot use --commit with command line file list")
if (@commits && @ARGV);
@@ -294,7 +291,7 @@ sub run_indent
return $source;
}
-sub show_diff
+sub diff
{
my $indented = shift;
my $source_filename = shift;
@@ -323,8 +320,8 @@ Options:
--list-of-typedefs=STR string containing typedefs, space separated
--excludes=PATH file containing list of filename patterns to ignore
--indent=PATH path to pg_bsd_indent program
- --show-diff show the changes that would be made
- --silent-diff exit with status 2 if any changes would be made
+ --diff show the changes that would be made
+ --check exit with status 2 if any changes would be made
The --excludes and --commit options can be given more than once.
EOF
if ($help)
@@ -417,17 +414,21 @@ foreach my $source_filename (@files)
if ($source ne $orig_source)
{
- if ($silent_diff)
- {
- exit 2;
- }
- elsif ($show_diff)
+ if (!$diff && !$check)
{
- print show_diff($source, $source_filename);
+ write_source($source, $source_filename);
}
else
{
- write_source($source, $source_filename);
+ if ($diff)
+ {
+ print diff($source, $source_filename);
+ }
+
+ if ($check)
+ {
+ exit 2;
+ }
}
}
}
diff --git a/src/tools/pgindent/pgindent.man b/src/tools/pgindent/pgindent.man
index fe411ee699..caab5cde91 100644
--- a/src/tools/pgindent/pgindent.man
+++ b/src/tools/pgindent/pgindent.man
@@ -31,13 +31,13 @@ find the file src/tools/pgindent/exclude_file_patterns. The --excludes option
can be used more than once to specify multiple files containing exclusion
patterns.
-There are also two non-destructive modes of pgindent. If given the --show-diff
+There are also two non-destructive modes of pgindent. If given the --diff
option pgindent will show the changes it would make, but doesn't actually make
-them. If given instead the --silent-diff option, pgindent will exit with a
-status of 2 if it finds any indent changes are required, but will not
-make the changes or give any other information. This mode is intended for
-possible use in a git pre-commit hook. An example of its use in a git hook
-can be seen at https://wiki.postgresql.org/wiki/Working_with_Git#Using_git_hooks
+them. If given instead the --check option, pgindent will exit with a status of
+2 if it finds any indent changes are required, but will not make the changes.
+This mode is intended for possible use in a git pre-commit hook. The --check
+and --diff options can be combined. An example of its use in a git hook can be
+seen at https://wiki.postgresql.org/wiki/Working_with_Git#Using_git_hooks
Any non-option arguments are taken as the names of files to be indented. In this
case only these files will be changed, and nothing else will be touched.
--
2.32.1 (Apple Git-133)