use File::Path;
use File::Find;

my $lame = "D:\\Profiles\\Data\\AudioRecordings\\Radio4\\lame.exe";
my $flac = "c:\\windows\\system32\\flac.exe";
my $mp3dir = "G:\/MP3";
my $musicdir = "G:\/MUSIC";
my @allFlac;
my $testCode = sub {
	if ($_ =~ /\.flac/i) {
		my $flacfile = $File::Find::name;
		$flacfile =~ /MUSIC(\\|\/)(.*?)(\\|\/)(.*?)(\\|\/)/;
		my $artist = $2;
		my $album = $4;
		my $mp3 = $File::Find::name;
		$mp3 =~ s/\.flac/.mp3/;
		$mp3 =~ s/MUSIC/MP3/;
		unless (-f $mp3) {
			print $File::Find::name,"\n";
			push @allFlac, $File::Find::name;
			$mp3dir = $mp3;
			$mp3dir =~ s/(.*)(\\|\/)[^\\\/]*$/$1/;
			unless (-d $mp3dir) {
				mkpath $mp3dir;
			}
			$_ =~ /^(\d+)\s*-\s*(.*)/;
			my $trackno = $1;
			my $track = $2;
			$track =~ s/\.flac//;
			my $command = "$flac -dcs \"$flacfile\" | $lame --silent -V 4 -B 224 --tt \"$track\" --ta \"$artist\" --tl \"$album\" --tn $trackno - \"$mp3\"";
			print $command,"\n";
			system $command;
		}
	}
};


finddepth($testCode,  "G:\/MUSIC");

