From f768e5fc4f33962bfac1142c546776cc0e239ec0 Mon Sep 17 00:00:00 2001 From: Ian Beckwith Date: Sat, 6 Nov 2010 18:35:25 +0000 Subject: [PATCH] recurse down @ARGV instead of treating them as files --- bin/id3fs-tag | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/bin/id3fs-tag b/bin/id3fs-tag index 28b4b6a..0b1f20e 100755 --- a/bin/id3fs-tag +++ b/bin/id3fs-tag @@ -19,10 +19,12 @@ use lib '/home/ianb/projects/id3fs/id3fs/lib'; # FIXME: remove use strict; use Getopt::Long qw(Configure); +use File::Find; use ID3FS::AudioFile; use vars qw($me); $me=($0=~/(?:.*\/)?(.*)/)[0]; +my @extensions=qw(mp3); # FIXME: flac ogg my $verbose=0; my $help=0; my ($artist, $album, $track, $tracknum, $year, $v1genre, $comment, @@ -60,25 +62,35 @@ my $optret=GetOptions( usage() if(!@ARGV || !$optret || $help); -while(my $filename=shift @ARGV) +while(my $path=shift @ARGV) { - unless(-f $filename) + unless(-e $path) { - warn("$me: $filename: not found\n"); + warn("$me: $path: not found\n"); next; } - my $file=ID3FS::AudioFile->new($filename); - next unless($file); - my $changes=0; - $changes = do_deletes($file); - $changes += do_adds($file); - if($changes) - { - do_write($file); - } - else + File::Find::find( {wanted => \&wanted, follow => 1, no_chdir => 1}, $path); +} + +sub wanted +{ + my $ext=''; + if(/.*\.(.*)/) { $ext=lc($1); } + if(-f && scalar(grep({ $ext eq lc($_);} @extensions))) { - do_display($file); + my $file=ID3FS::AudioFile->new($_); + return unless($file); + my $changes=0; + $changes = do_deletes($file); + $changes += do_adds($file); + if($changes) + { + do_write($file); + } + else + { + do_display($file); + } } } -- 2.11.0