#!/usr/local/bin/perl -w
###########################################
# distro - Compare packages in distros
# Mike Schilli, 2013 (m@perlmeister.com)
###########################################
use strict;
use Log::Log4perl qw(:easy);
# Log::Log4perl->easy_init($DEBUG);

my( $query ) = @ARGV;
die "usage: $0 query" if !defined $query;

my $distro = Distro->new();
$distro->list( $query );

###########################################
package Distro;
###########################################
use Mouse;
use Module::Pluggable 
  require     => 1,
  search_dirs => ['.'];

sub list {
  my( $self, $query ) = @_;

  for my $plugin ( $self->plugins() ) {
    next unless $plugin->can( "list" );

    print "[$plugin]\n";
    my $data = $plugin->list( $query );

    for ( @$data ) {
      print "$_->{ pkg }\t", 
        $plugin->dateformat( 
            $_->{ mtime } ), "\n";
    }
  }
}
