public inbox for [email protected]
help / color / mirror / Atom feedFrom: Andres Freund <[email protected]>
Subject: [PATCH v2] Add meson targets to run pgindent
Date: Sat, 27 May 2023 11:38:27 -0700
Author:
Reviewed-By:
Discussion: https://postgr.es/m/
Backpatch:
---
meson.build | 36 ++++++++++++++++++++++++++++++++++++
src/tools/pgindent/pgindent | 12 ++++++++++--
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 862c955453f..7d4d02e7624 100644
--- a/meson.build
+++ b/meson.build
@@ -3013,6 +3013,42 @@ run_target('install-test-files',
+###############################################################
+# Indentation and similar targets
+###############################################################
+
+indent_base = [perl, files('src/tools/pgindent/pgindent'),
+ '--indent', pg_bsd_indent.full_path(),
+ '--sourcetree=@SOURCE_ROOT@']
+
+# reindent the entire tree
+run_target('indent-tree',
+ command: indent_base + ['.'],
+ depends: pg_bsd_indent
+)
+
+# reindent the last commit
+run_target('indent-head',
+ command: indent_base + ['--commit=HEAD'],
+ depends: pg_bsd_indent
+)
+
+# silently check if any file is not corectly indented (fails the build if
+# there are differences)
+run_target('indent-check',
+ command: indent_base + ['--silent-diff', '.'],
+ depends: pg_bsd_indent
+)
+
+# show a diff of all the unindented files (doesn't fail the build if there are
+# differences)
+run_target('indent-diff',
+ command: indent_base + ['--show-diff', '.'],
+ 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.38.0
--jxk2viadsl6kkohh--
view thread (9+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [PATCH v2] Add meson targets to run pgindent
In-Reply-To: <no-message-id-1856749@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox