#!/usr/bin/perl

use strict;
use warnings;

use Carp qw(cluck longmess shortmess croak confess);
use Carp::Assert;
use Date::Format;
use File::Basename;
use File::Copy;
use File::stat;
use XML::LibXML;
use XML::LibXSLT;

use Ernad::Common;
use Ernad::Constant;
use Ernad::Erimp;
use Ernad::Files;
use Ernad::Dates;


my $type='learning_evaluation';

my $impna=$ARGV[0];
if(not defined($impna)) {
  die "I need the impna.";
}
my $e=Ernad::Erimp->new({'impna'=>$impna});
if(not $e) {
  die "You geve me an invalid impna $impna\n";
}

my $verbose = $ARGV[1] // 0;

my $eval_dir=$e->{'dir'}->{'learn'}.'/evalu' or die;
if(not -d $eval_dir) {
  mkpath $eval_dir;
}
my $eval_web_dir=$e->{'dir'}->{'eval_web'} or die "eval_web_dir not set in ernad.conf";
if(not $eval_web_dir) {
  confess "I can't find the eval_web_dir $eval_web_dir";
}
my $style_file=$e->{'dir'}->{'style'}.'/'.$type.$e->{'const'}->{'xsl_ext'};
if(not $style_file) {
  confess "I can't find the style_file $style_file";
}

opendir(DH, $eval_dir);
my $xml_file;
while ($xml_file = readdir DH ) {
  if(not $xml_file=~m|xml$|) {
    next;
  }
  my $xml_fufi="$eval_dir/$xml_file";
  if($verbose) {
    #print "$xml_fufi\n";
  }
  my $html_fufi=&Ernad::Files::xml_to_html($xml_file,$eval_web_dir);
  my $update_time=&Ernad::Files::does_file_need_renewal($html_fufi,$xml_fufi,$style_file);
  if(not $update_time) {
    next;
  }
  my $update_date=&Ernad::Dates::pretty_time($update_time);
  my $doc=$e->{'t'}->transform_file($xml_fufi,$type, {update => "'$update_date'"});
  print "wrting $html_fufi\n";
  $doc->toFile($html_fufi);
}
