]> 4ch.mooo.com Git - 16.git/blob - make-lowercase
wwww
[16.git] / make-lowercase
1 #!/usr/bin/perl
2 my $top=`pwd`; chomp $top;
3
4 sub vfat_rename($$) {
5         my $from,$to;
6         ($from,$to) = @_;
7
8         # uppercase DOS names with the vfat driver need some forceful convincing
9         # to actually make them lowercase
10         rename($from,"$to.xxx.xx");
11         rename("$to.xxx.xx",$to);
12 }
13
14 sub scan($) {
15         my $old = `pwd`; chomp $old;
16         my $cur = shift @_;
17         my @x;
18
19         print "scanning $cur\n";
20         chdir($cur) || die;
21
22         opendir(X,".") || return;
23         while (my $name = readdir(X)) {
24                 next unless -f $name;
25                 my $n = lc($name);
26                 next if $n eq $name;
27                 print "$name\n";
28                 rename($name,$n) || die;
29                 vfat_rename($name,$n);
30         }
31         closedir(X);
32
33         opendir(X,".") || return;
34         while (my $name = readdir(X)) {
35                 next if $name =~ m/^\.+$/;
36                 next if $name eq ".git";
37                 next if $name eq ".GIT";
38                 next unless -d $name;
39                 my $n = lc($name);
40                 next if $n eq $name;
41                 print "$name\n";
42                 rename($name,$n) || die;
43                 vfat_rename($name,$n);
44         }
45         closedir(X);
46
47         opendir(X,".") || return;
48         while (my $name = readdir(X)) {
49                 next if $name =~ m/^\.+$/;
50                 next if $name eq ".git";
51                 next if $name eq ".GIT";
52                 next unless -d $name;
53                 push(@x,$name);
54         }
55         closedir(X);
56         foreach my $name (@x) {
57                 scan("$cur/$name");
58         }
59
60         chdir($old) || die;
61 }
62
63 scan($top);