a whole bunch of stuff
[ephemerata.git] / remove_trailing_whitespace.pl
blob8d91a2d5c933b7e326b35fcf953300f5f6df6d03
1 #!/usr/bin/perl
3 use strict;
4 use warnings;
6 sub do_dir($);
7 sub do_file($);
9 if ($#ARGV >= 0) {
10 do_dir($ARGV[0]);
13 #do_dir('.');
15 exit(0);
17 sub do_dir($) {
18 my ($dirname) = @_;
19 my $dh;
20 opendir $dh, $dirname;
22 while (my $fname = readdir $dh) {
24 if ($fname =~ /\.$/ or $fname =~ /^\./) {
25 next;
28 $fname = "$dirname/$fname";
29 if (-d $fname) {
30 do_dir($fname);
31 } elsif (-f $fname) {
32 do_file($fname);
36 closedir $dh;
39 sub do_file($) {
40 my ($fname) = @_;
41 print "$fname\n";
42 my $fh;
44 local $/;
45 open $fh, $fname or do {
46 print "failed open for reading\n";
47 return;
50 my $contents = <$fh>; #slurp!
51 close $fh;
52 #$contents =~ s/[ ]+($)/\n/gm;
53 $contents =~ s/\x0d\x0a/\n/gs;
54 $contents =~ s/[ ]+($)/$1/gm;
55 # print "-----------------\n";
56 # print $contents;
57 # print "-----------------\n\n";
58 open $fh, ">$fname" or do {
59 print "failed open for reading\n";
60 return;
62 print $fh $contents;
63 close $fh;