From 2ae58700a37a0a9f1c5cad527e89bd00fc586858 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Sat, 27 May 2023 11:38:27 -0700 Subject: [PATCH v1] add meson target to run pgindent Author: Reviewed-By: Discussion: https://postgr.es/m/ Backpatch: --- meson.build | 12 ++++++++++++ src/tools/pgindent/pgindent | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 16b2e866462..1c7ed9c87f9 100644 --- a/meson.build +++ b/meson.build @@ -3005,7 +3005,19 @@ run_target('install-test-files', depends: testprep_targets, ) +indent_base = [perl, files('src/tools/pgindent/pgindent'), + '--indent', pg_bsd_indent.full_path(), + '--sourcetree=@SOURCE_ROOT@'] +run_target('indent-head', + command: indent_base + ['--commit=HEAD'], + depends: pg_bsd_indent +) + +run_target('indent-tree', + command: indent_base + ['.'], + depends: pg_bsd_indent +) ############################################################### # Test prep diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index bce63d95daf..08b0c95814f 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -23,7 +23,7 @@ my $devnull = File::Spec->devnull; my ($typedefs_file, $typedef_str, @excludes, $indent, $build, $show_diff, - $silent_diff, $help, @commits,); + $silent_diff, $sourcetree, $help, @commits,); $help = 0; @@ -35,7 +35,8 @@ my %options = ( "excludes=s" => \@excludes, "indent=s" => \$indent, "show-diff" => \$show_diff, - "silent-diff" => \$silent_diff,); + "silent-diff" => \$silent_diff, + "sourcetree=s" => \$sourcetree); GetOptions(%options) || usage("bad command line argument"); usage() if $help; @@ -53,6 +54,13 @@ $typedefs_file ||= $ENV{PGTYPEDEFS}; # get indent location for environment or default $indent ||= $ENV{PGINDENT} || $ENV{INDENT} || "pg_bsd_indent"; +# When invoked from the build directory, change into source tree, otherwise +# the heuristics in locate_sourcedir() don't work. +if (defined $sourcetree) +{ + chdir $sourcetree; +} + my $sourcedir = locate_sourcedir(); # if it's the base of a postgres tree, we will exclude the files -- 2.37.1.188.g71a8fab31b