]> 4ch.mooo.com Git - 16.git/blobdiff - make-lowercase
O SHIT I COMPILED IT ALL WWWW
[16.git] / make-lowercase
diff --git a/make-lowercase b/make-lowercase
new file mode 100644 (file)
index 0000000..4e586f2
--- /dev/null
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+my $top=`pwd`; chomp $top;
+
+sub vfat_rename($$) {
+       my $from,$to;
+       ($from,$to) = @_;
+
+       # uppercase DOS names with the vfat driver need some forceful convincing
+       # to actually make them lowercase
+       rename($from,"$to.xxx.xx");
+       rename("$to.xxx.xx",$to);
+}
+
+sub scan($) {
+       my $old = `pwd`; chomp $old;
+       my $cur = shift @_;
+       my @x;
+
+       print "scanning $cur\n";
+       chdir($cur) || die;
+
+       opendir(X,".") || return;
+       while (my $name = readdir(X)) {
+               next unless -f $name;
+               my $n = lc($name);
+               next if $n eq $name;
+               print "$name\n";
+               rename($name,$n) || die;
+               vfat_rename($name,$n);
+       }
+       closedir(X);
+
+       opendir(X,".") || return;
+       while (my $name = readdir(X)) {
+               next if $name =~ m/^\.+$/;
+               next if $name eq ".git";
+               next if $name eq ".GIT";
+               next unless -d $name;
+               my $n = lc($name);
+               next if $n eq $name;
+               print "$name\n";
+               rename($name,$n) || die;
+               vfat_rename($name,$n);
+       }
+       closedir(X);
+
+       opendir(X,".") || return;
+       while (my $name = readdir(X)) {
+               next if $name =~ m/^\.+$/;
+               next if $name eq ".git";
+               next if $name eq ".GIT";
+               next unless -d $name;
+               push(@x,$name);
+       }
+       closedir(X);
+       foreach my $name (@x) {
+               scan("$cur/$name");
+       }
+
+       chdir($old) || die;
+}
+
+scan($top);