#!/usr/bin/perl
#Convert filenames to lowercase

use strict;
use File::Copy;

if (@ARGV==0)
{
  print "You need at least 1 filename to be converted to lowercase\n";
  exit 1;
}

sub lowcase
{
  my ($name)=@_;

  if (-e $name)
  {
    my $l=lc($name);
    if (!(-e $l))
    {
      move($name,$l);
      $name=$l;
    }

    if (-d $name)
    {
      chdir("$name");
      opendir(DIR, ".");
      my @files = readdir(DIR);
      closedir(DIR);

      foreach my $file (@files) {
        if ($file eq "." || $file eq "..") {next;}
        lowcase($file);
      }
      chdir("..");
    }
  } else {
    print "Warning: \"".$name."\" does not exist!\n";
  }
}

for my $i (@ARGV)
{
  lowcase($i);
}
