Re: pgindent exit status if a file encounters an error - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: pgindent exit status if a file encounters an error
Date
Msg-id ZxBLkouN0oSx12pC@momjian.us
Whole thread Raw
In response to Re: pgindent exit status if a file encounters an error  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Responses Re: pgindent exit status if a file encounters an error
List 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?"



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Limiting overshoot in nbtree's parallel SAOP index scans
Next
From: Matthias van de Meent
Date:
Subject: Re: Limiting overshoot in nbtree's parallel SAOP index scans