id3fs-tag: add/replace tags in genre tag
[id3fs.git] / bin / id3fs-tag
index 0911f45..037dc78 100755 (executable)
@@ -97,10 +97,11 @@ sub do_deletes
        $file->delete_tags($replace_tags[0]);
     }
 
-    return($delete_artist   || $delete_album  || $delete_track   ||
-          $delete_tracknum || $delete_year   || $delete_v1genre ||
-          $delete_comment  || $delete_all    || $delete_genre   ||
-          $delete_tags     || (@replace_tags && $replace_tags[0]));
+    my $donesomething=($delete_artist || $delete_album || $delete_track    ||
+                      $delete_tracknum || $delete_year || $delete_v1genre ||
+                      $delete_comment || $delete_all || $delete_genre     ||
+                      $delete_tags || (@replace_tags && $replace_tags[0]));
+    return($donesomething ? 1 : 0);
 }
 
 sub do_adds
@@ -120,19 +121,57 @@ sub do_adds
        $file->add_tags($replace_tags[1]);
     }
 
-    return($artist  || $album || $track    || $tracknum || $year || $v1genre ||
-          $comment || $genre || $add_tags || (@replace_tags && $replace_tags[0]));
+    my $donesomething=(defined($artist)   || defined($album) ||
+                      defined($track)    || defined($tracknum) ||
+                      defined($year)     || defined($v1genre) ||
+                      defined($comment)  || defined($genre) ||
+                      defined($add_tags) ||
+                      (@replace_tags && defined($replace_tags[1])));
+    return( $donesomething ? 1 : 0 );
 }
 
 sub do_write
 {
     my($file)=@_;
-    $file->write(); 
+    $file->write();
 }
 
 sub do_display
 {
     my($file)=@_;
+    my $artist=$file->artist();
+    my $album=$file->album();
+    my $track=$file->track();
+    my $tracknum=$file->tracknum();
+    my $year=$file->year();
+    my $comment=$file->comment();
+    my $v1genre=$file->v1genre();
+    my @tags=$file->tags();
+    @tags = map { (ref($_) eq "ARRAY") ? join('/', grep {defined;} @{$_}) : $_; } @tags;
+    use Data::Dumper;
+    print Dumper \@tags;
+    if($verbose)
+    {
+       print $file->path(), ":\n";
+       print "tracknum: $tracknum\n" if($tracknum);
+       print "artist: $artist\n"     if($artist);
+       print "album: $album\n"       if($album);
+       print "song: $track\n"        if($track);
+       print "year: $year\n"         if($year);
+       print "v1genre: $v1genre\n"   if($v1genre);
+       print "comment: $comment\n"   if($comment);
+    }
+    else
+    {
+       my @fields=($file->path(), $tracknum, $artist, $album, $track,
+                   $year, $v1genre, $comment);
+       @fields=map { defined($_) ? $_ : ""; } @fields;
+       print join(':', @fields), "\n";
+       if(@tags)
+       {
+           print "tags:", join(", ", @tags), "\n";
+       }
+    }
 }
 
 sub usage