fe0580673ca95b87a051f9e450c1a742dea3f212
[awesomized/libmemcached] / memcached / devtools / clean-whitespace.pl
1 #!/usr/bin/perl
2 use strict;
3 use FindBin qw($Bin);
4 chdir "$Bin/.." or die;
5
6 my @exempted = qw(Makefile.am ChangeLog doc/Makefile.am README README.md);
7 push(@exempted, glob("doc/*.xml"));
8 push(@exempted, glob("doc/xml2rfc/*.xsl"));
9 push(@exempted, glob("m4/*backport*m4"));
10 my %exempted_hash = map { $_ => 1 } @exempted;
11
12 my @stuff = split /\0/, `git ls-files -z -c -m -o --exclude-standard`;
13 my @files = grep { ! $exempted_hash{$_} } @stuff;
14
15 unless (@files) {
16 warn "ERROR: You don't seem to be running this from a git checkout\n";
17 exit;
18 }
19
20 foreach my $f (@files) {
21 open(my $fh, $f) or die;
22 my $before = do { local $/; <$fh>; };
23 close ($fh);
24 my $after = $before;
25 $after =~ s/\t/ /g;
26 $after =~ s/ +$//mg;
27 $after .= "\n" unless $after =~ /\n$/;
28 next if $after eq $before;
29 open(my $fh, ">$f") or die;
30 print $fh $after;
31 close($fh);
32 }