git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e6c56f2)
Rename pgindent options
2023年12月20日 22:28:57 +0000 (22:28 +0000)
2023年12月20日 22:37:57 +0000 (22:37 +0000)
--show-diff becomes --diff, and --silent-diff becomes --check. These
options may now be given together. Without --check, --diff will exit
with a zero status even if diffs are found. With --check, it will now
exit with a non-zero status in that case.

Author: Tristan Partin
Reviewed-by: Daniel Gustafsson, Jelte Fennema-Nio
Discussion: https://postgr.es/m/CXLX2XYTH9S6.140SC6Y61VD88@neon.tech


diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
index bce63d95daf629e802ed2c5f33279db19cbcde86..37f38eefc3e3f7d85588f93a8ccb0b1deda13102 100755 (executable)
--- 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)
@@ -375,6 +372,7 @@ warn "No files to process" unless @files;
process_exclude();
my %processed;
+my $status = 0;
foreach my $source_filename (@files)
{
@@ -417,19 +415,24 @@ 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)
+ {
+ $status = 2;
+ last unless $diff;
+ }
}
}
}
-exit 0;
+exit $status;
diff --git a/src/tools/pgindent/pgindent.man b/src/tools/pgindent/pgindent.man
index fe411ee699c1f9801cf58e7d92d8556c72e41ed1..caab5cde914070272b5e0e6f7e449259e7758c20 100644 (file)
--- 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.
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /