[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EP-tech] Datestamp of documents?



Hi,

the code in cfg.d/eprint_fields_automatic.pl is executed on commit of an 
eprint. We are obliged to create an archive file of documents of a 
multi-doc eprint. I assume that the tarball would be rewritten every 
once in a while (e.g. regeneration of thumbnails), which would take a 
long time for large files. Hence I want to tar them only when either of 
the two following conditions are true:

   * the eprint is put in the live area for the first time
   * documents have been changed (i.e. fresh upload)

My function is_archive_needed(), provided in a custom module I `use` in 
eprint_fields_automatic.pl reads like:

use List::Util qw(
sub is_archive_needed {
     my ($eprint, @documents) = @_;

     return 0 if @documents < 2;
     return 1 if $eprint->value("datestamp") =~ m{ \A [ 0:-] \z }xms;

     my $latestDate_doc_commit
         = maxstr map { $_->value("lastmod") } @documents;

     return $eprint->value("lastmod") < $latestDate_doc_commit;
}

My problem is that there is no lastmod date for document records, there 
is one for the associated eprint only. So is there any other way to test 
the second condition or am I to define a custom lastmod field for that 
dataset?



Kind regards
Florian

-- 
UB Heidelberg (Altstadt)
Pl?ck 107-109, 69117 HD
Abt. Informationstechnik
http://www.ub.uni-heidelberg.de/