From b858e05406134edaaf9bd94bfd8970fdc1e4ee8b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:27:35 -0400 Subject: [PATCH] Match suffixes of multisuffix files --- prettier/shell-glob-files.pl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/prettier/shell-glob-files.pl b/prettier/shell-glob-files.pl index 8e5eb20..c9b4e73 100755 --- a/prettier/shell-glob-files.pl +++ b/prettier/shell-glob-files.pl @@ -11,13 +11,22 @@ open my $git, "-|", "git ls-files -z"; { local $/ = "\0"; + my $sought_extensions_re = ''; while (my $file_with_path = <$git>) { chomp $file_with_path; - my ($path, $file, $ext) = ($file_with_path =~ m<(.*/|)(?:([^/.]+)(\.[^/]+))$>); + if ($sought_extensions_re eq '') { + my @sought_extensions = keys %supported_extensions; + @sought_extensions = map { s/([\\{}.\[\]])/\\$1/g; $_ } @sought_extensions; + $sought_extensions_re = join '|', @sought_extensions; + last if $sought_extensions_re eq ''; + } + my ($path, $file) = ($file_with_path =~ m<(.*/|)([^/]+)$>); $path = "." if $path eq ""; $path =~ s<>; - next unless defined $supported_extensions{$ext}; + next unless $file =~ /($sought_extensions_re)$/; + my $ext = $1; $found_extensions{$ext} = 1; + delete $supported_extensions{$ext}; $interesting_paths{$path} = 1; } }