summaryrefslogtreecommitdiffstats
path: root/solenv/clang-format/reformat-formatted-files
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/clang-format/reformat-formatted-files')
-rwxr-xr-xsolenv/clang-format/reformat-formatted-files49
1 files changed, 49 insertions, 0 deletions
diff --git a/solenv/clang-format/reformat-formatted-files b/solenv/clang-format/reformat-formatted-files
new file mode 100755
index 000000000..a3a670f83
--- /dev/null
+++ b/solenv/clang-format/reformat-formatted-files
@@ -0,0 +1,49 @@
+#!/usr/bin/env perl
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Reformat files which are not excluded. This is interesting if the
+# clang-format version or config changes.
+# -n allows just listing the formatted files.
+
+use strict;
+use warnings;
+use lib "solenv/clang-format";
+use ClangFormat;
+
+my $clang_format = ClangFormat::find();
+my $src = ClangFormat::get_extension_regex();
+my $excluded_list_names = ClangFormat::get_excludelist();
+my @filenames = ();
+my $dry_run = 0;
+
+# Get a list of files.
+open (FILES, "git ls-files |") || die "Cannot run git ls-files.";
+while (my $filename = <FILES>)
+{
+ chomp $filename;
+ if ($filename =~ /\.($src)$/ and !exists($excluded_list_names->{$filename}))
+ {
+ push @filenames, $filename;
+ }
+}
+
+if ($#ARGV ge 0 && $ARGV[0] eq "-n")
+{
+ $dry_run = 1;
+}
+
+foreach my $filename (@filenames)
+{
+ my $command = $clang_format . " -i " . $filename;
+ print($filename . "\n");
+ if (!$dry_run)
+ {
+ system($command) == 0 or die "failed to execute \"$command\": $?";
+ }
+}
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab: