diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2023-12-20 22:28:57 +0000 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2023-12-20 22:37:57 +0000 |
commit | 387aecc948ed2fa39e04f84d9eea086d32ebd42e (patch) | |
tree | 2de5281bd95a4cd13fda2cd207f7ab9419ecef67 /src | |
parent | e6c56f2a9d45d2ee636bb94c93a4268c39a1ad18 (diff) | |
download | postgresql-387aecc948ed2fa39e04f84d9eea086d32ebd42e.tar.gz postgresql-387aecc948ed2fa39e04f84d9eea086d32ebd42e.zip |
Rename pgindent options
--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
Diffstat (limited to 'src')
-rwxr-xr-x | src/tools/pgindent/pgindent | 39 | ||||
-rw-r--r-- | src/tools/pgindent/pgindent.man | 12 |
2 files changed, 27 insertions, 24 deletions
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index bce63d95daf..37f38eefc3e 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) @@ -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 fe411ee699c..caab5cde914 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. |