Re: pgindent exit status if a file encounters an error
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andrew Dunstan <andrew@dunslane.net>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-10-16T23:26:10Z
Lists: pgsql-hackers
Uh, where are we on this?
---------------------------------------------------------------------------
On Fri, Jun 28, 2024 at 06:05:35PM +0530, Ashutosh Bapat wrote:
>
>
> On Wed, Jun 26, 2024 at 8:54 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Ashutosh Bapat <ashutosh.bapat.oss@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.bapat@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_GQ@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
>
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
When a patient asks the doctor, "Am I going to die?", he means
"Am I going to die soon?"
Commits
-
Set exit status for pgindent if pg_bsd_indent fails
- b20fe54c9c21 18.0 landed