Index: contrib/mythrename.pl =================================================================== --- contrib/mythrename.pl (revision 9611) +++ contrib/mythrename.pl (working copy) @@ -26,7 +26,7 @@ # Some variables we'll use here our ($dest, $format, $usage, $underscores, $live); our ($dformat, $dseparator, $dreplacement, $separator, $replacement); - our ($db_host, $db_user, $db_name, $db_pass, $video_dir, $verbose); + our ($db_host, $db_user, $db_name, $db_pass, $video_dirs, $verbose); our ($hostname, $dbh, $sh, $sh2, $q, $q2, $count); # Default filename format @@ -233,16 +233,19 @@ $q = 'SELECT data FROM settings WHERE value="RecordFilePrefix" AND hostname=?'; $sh = $dbh->prepare($q); $sh->execute($hostname) or die "Could not execute ($q): $!\n\n"; - ($video_dir) = $sh->fetchrow_array; + ($video_dirs) = $sh->fetchrow_array; $sh->finish; - die "This host not configured for myth.\n(No RecordFilePrefix defined for $hostname in the settings table.)\n\n" unless ($video_dir); - die "Recordings directory $video_dir doesn't exist!\n\n" unless (-d $video_dir); - $video_dir =~ s/\/+$//; + die "This host not configured for myth.\n(No RecordFilePrefix defined for $hostname in the settings table.)\n\n" unless ($video_dirs); + $video_dirs =~ s/\/+$//; + @video_dir = split(/,/,$video_dirs); + foreach $dir (@video_dir) { + die "Recordings directory $dir doesn't exist!\n\n" unless (-d $dir); + } # Link destination if (defined($dest)) { # Double-check the destination - $dest ||= "$video_dir/show_names"; + $dest ||= $video_dir[0]."/show_names"; # Alert the user vprint("Link destination directory: $dest"); # Create nonexistent paths @@ -280,7 +283,15 @@ while (my $ref = $sh->fetchrow_hashref()) { my %info = %{$ref}; die "This script requires mythtv >= 0.19\n" unless ($info{'basename'}); - next unless (-e "$video_dir/".$info{'basename'}); + + $found_dir = ""; + foreach $dir (@video_dir) { + if (-e $dir."/".$info{'basename'}) { + $found_dir = $dir; + } + } + next unless ($found_dir ne ""); + # Default times my ($syear, $smonth, $sday, $shour, $sminute, $ssecond) = $info{'starttime'} =~ /(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)/; my ($eyear, $emonth, $eday, $ehour, $eminute, $esecond) = $info{'endtime'} =~ /(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)/; @@ -400,17 +411,17 @@ mkpath($directory, 0, 0755) or die "Failed to create $directory: $!\n"; } - symlink "$video_dir/".$info{'basename'}, "$dest/$name" + symlink "$found_dir/".$info{'basename'}, "$dest/$name" or die "Can't create symlink $dest/$name: $!\n"; vprint("$dest/$name"); } # Rename the file, but only if it's a real file - elsif (-f "$video_dir/".$info{'basename'}) { + elsif (-f "$found_dir/".$info{'basename'}) { if ($info{'basename'} ne $name.$suffix) { # Check for duplicates - if (-e "$video_dir/$name$suffix") { + if (-e "$found_dir/$name$suffix") { $count = 2; - while (-e "$video_dir/$name.$count$suffix") { + while (-e "$found_dir/$name.$count$suffix") { $count++; } $name .= ".$count"; @@ -419,7 +430,7 @@ # Update the database my $rows = $sh2->execute($name, $info{'chanid'}, $info{'starttime'}); die "Couldn't update basename in database for ".$info{'basename'}.": ($q2)\n" unless ($rows == 1); - my $ret = rename "$video_dir/".$info{'basename'}, "$video_dir/$name"; + my $ret = rename "$found_dir/".$info{'basename'}, "$found_dir/$name"; # Rename failed -- Move the database back to how it was (man, do I miss transactions) if (!$ret) { $rows = $sh2->execute($info{'basename'}, $info{'chanid'}, $info{'starttime'});