#!/usr/bin/perl

use Date::Parse;
use YAML::Syck; 
use Data::Dumper;
use Time::Duration;
use Template;
use LWP::Simple; 


my $max_old = 43200; #12h 
my $yaml_file = 'mirrors.yaml';

my $mirror_data = LoadFile($yaml_file); 

foreach my $mirror (keys %{$mirror_data->{'mirrors'}}) {
	if (open(my $fh, '<', $mirror_data->{'mirrors'}->{$mirror}->{'statusfile'})) {
		my $date = <$fh>; 
		chomp($date); 
		my $time = str2time($date);
		$mirror_data->{'mirrors'}->{$mirror}->{'last'} = $time; 
		if ($mirror_data->{'mirrors'}->{$mirror}->{'trace'}) {
			my $tracefile = get($mirror_data->{'mirrors'}->{$mirror}->{'trace'}); 
			die "Couldn't get " . $mirror_data->{'mirrors'}->{$mirror}->{'trace'} ."$!\n" 
				unless $tracefile; 
			chomp($tracefile); 
			my $tracetime = str2time($tracefile); 
			$mirror_data->{'mirrors'}->{$mirror}->{'tracetime'} = $tracetime; 
		}
	} else {
		print "Could not open $mirror_data->{'mirrors'}->{$mirror}->{'statusfile'}:$!\n";
	 }
}

my $tt = Template->new || die "$Template::ERROR\n";
$tt->process('mirrorstatus.tt2', { 'd' => $mirror_data, 'ago' => sub { return ago(@_) },  })
    || die $tt->error(), "\n";

