package Enbld::Command::Outdated;
use strict;
use warnings;
use parent qw/Enbld::Command/;
require Enbld::Home;
require Enbld::App::Configuration;
require Enbld::Target;
require Enbld::Message;
sub do {
my $self = shift;
Enbld::Home->initialize;
Enbld::App::Configuration->read_file;
my %outdated;
foreach my $name ( keys %{ Enbld::App::Configuration->config } ) {
my $config = Enbld::App::Configuration->search_config( $name );
my $target = Enbld::Target->new( $name, $config );
my $version = eval { $target->is_outdated };
next if $@;
if ( $version ) {
$outdated{$name} = $version;
}
}
if ( ! keys %outdated ) {
print STDERR "no outdated targets.\n";
}
foreach my $name ( sort keys %outdated ) {
my $config = Enbld::App::Configuration->search_config( $name );
my $line = $name . ' ' x 15;
print substr( $line, 0, 15 );
print $config->enabled;
print " < ";
print $outdated{$name};
print "\n";
}
return $self;
}
1;