On Wed, Jun 26, 2024 at 8:54 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
> Ashutosh Bapat <ashutosh.bapat....@gmail.com> writes: > > The usage help mentions exit code 2 specifically while describing --check > > option but it doesn't mention exit code 1. Neither does the README. So I > > don't think we need to document exit code 3 anywhere. Please let me know > if > > you think otherwise. > > I think we should have at least a code comment summarizing the > possible exit codes, along the lines of > > # Exit codes: > # 0 -- all OK > # 1 -- could not invoke pgindent, nothing done > # 2 -- --check mode and at least one file requires changes > # 3 -- pgindent failed on at least one file > Thanks. Here's a patch with these lines. In an offline chat Andrew mentioned that he expects more changes in the patch and he would take care of those. Will review and test his patch. -- Best Wishes, Ashutosh Bapat
From 2a61830f0a2b6559d04bef75c6aa224e30ed1609 Mon Sep 17 00:00:00 2001 From: Ashutosh Bapat <ashutosh.ba...@enterprisedb.com> Date: Wed, 26 Jun 2024 15:46:53 +0530 Subject: [PATCH 1/2] pgindent exit status on error When pg_bsd_indent exits with a non-zero status or reports an error, make pgindent exit with non-zero status 3. The program does not exit on the first instance of the error. Instead it continues to process remaining files as long as some other exit condition is encountered, in which case exit code 3 is reported. This helps to detect errors automatically when pgindent is run in shells which interpret non-zero exit status as failure. Author: Ashutosh Bapat Reviewed by: Andrew Dunstan Discussion: https://www.postgresql.org/message-id/caexhw5sprsifeldp-u1fa5ba7ys2f0gvljmkoobopkadjwq...@mail.gmail.com --- src/tools/pgindent/pgindent | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index 48d83bc434..03b319c9c3 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -1,5 +1,12 @@ #!/usr/bin/perl +# Program to maintain uniform layout style in our C and Perl code. +# Exit codes: +# 0 -- all OK +# 1 -- could not invoke pgindent, nothing done +# 2 -- --check mode and at least one file requires changes +# 3 -- pgindent failed on at least one file + # Copyright (c) 2021-2024, PostgreSQL Global Development Group use strict; @@ -409,6 +416,7 @@ foreach my $source_filename (@files) if ($source eq "") { print STDERR "Failure in $source_filename: " . $error_message . "\n"; + $status = 3; next; } @@ -429,7 +437,7 @@ foreach my $source_filename (@files) if ($check) { - $status = 2; + $status ||= 2; last unless $diff; } } -- 2.34.1