blob: 1a0d0ea2e8febe7a1fc42d3dc8aa3abfa8053930 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#!/usr/local/bin/perl
use warnings;
use strict;
use File::Copy qw/mv/;
sub get_og_files
{
my @og_files;
opendir(DIR, '.') or die $!;
while (readdir(DIR)) {
next if ($_ =~ m/^\./);
push @og_files, $_;
}
closedir(DIR);
return @og_files;
}
sub get_new_files
{
my @og_files = @_;
my @new_files;
foreach (@og_files) {
$_ =~ s/\ -\ /-/g;
$_ =~ s/\_-\_/-/g;
$_ =~ s/\ /_/g;
$_ =~ s/[\$#@~!&*%()\[\];,:?^`\\\/<>|]+/-/g;
$_ = lc($_);
push @new_files, $_;
}
return @new_files;
}
sub main
{
my @og_files;
my @new_files;
my @files;
@og_files = get_og_files();
@new_files = get_new_files(@og_files);
while (@og_files || @new_files) {
$files[0] = shift @og_files;
$files[1] = shift @new_files;
if (@ARGV == 1 && $ARGV[0] eq '-R' && -d $files[0]) {
chdir($files[0]) or die $!;
main();
chdir('../');
}
next if (-e $files[1]);
mv($files[0], $files[1]) or print STDERR $! . "\n";
print "'". $files[0] . "' -> '" . $files[1] . "'\n";
}
return;
}
main();
__END__
|