projects
/
id3fs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
262b921
)
recurse down @ARGV instead of treating them as files
author
Ian Beckwith
<ianb@erislabs.net>
Sat, 6 Nov 2010 18:35:25 +0000
(18:35 +0000)
committer
Ian Beckwith
<ianb@erislabs.net>
Sat, 6 Nov 2010 18:35:25 +0000
(18:35 +0000)
bin/id3fs-tag
patch
|
blob
|
history
diff --git
a/bin/id3fs-tag
b/bin/id3fs-tag
index
28b4b6a
..
0b1f20e
100755
(executable)
--- 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 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];
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,
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);
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;
}
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);
+ }
}
}
}
}