OSDN Git Service

update todo list with new stuff
[proj16/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);