The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;

use MP3::Find::DB;

use File::Spec::Functions qw(catfile);
use Getopt::Long;
GetOptions(
    'create'   => \my $CREATE,
    'file|f=s' => \my $DB_FILE,
);

$DB_FILE ||= catfile($ENV{HOME}, 'mp3.db');

my @NAMES = @ARGV;

my $f = MP3::Find::DB->new;
$f->create_db($DB_FILE) if $CREATE;

if (@NAMES) {
    my @files = grep { -f } @NAMES;
    my @dirs  = grep { -d } @NAMES;

    $f->update({
	dsn   => "dbi:SQLite:dbname=$DB_FILE",
	dirs  => \@dirs,
	files => \@files,
    });
}

=head1 NAME

mp3db - Frontend for creating and updating a database for MP3::Find::DB

=head1 SYNOPSIS

    # create the database file
    $ mp3db --create --file my_mp3.db
    
    # add info
    $ mp3db --file my_mp3.db ~/mp3
    
    # update, and add results from another directory
    $ mp3db --file my_mp3.db ~/mp3 ~/cds

=head1 DESCRIPTION

    mp3db [options] [directory] [directories...]

Creates and/or updates a database of ID3 data from the mp3s found
in the given directories.

=head2 Options

=over

=item C<--create>, C<-c>

Create the database file named by the C<--file> option.

=item C<--file>, C<-f>

The name of the database file to work with. Defaults to F<~/mp3.db>.

=back

=head1 AUTHOR

Peter Eichman <peichman@cpan.org>

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2006 by Peter Eichman. All rights reserved.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=cut