package Ernad::Repis; use strict; use warnings; use Carp qw(cluck longmess shortmess croak confess); use Data::Dumper; #use Date::Format; #use File::Copy; #use File::Path; #use File::Slurper; #use File::Basename; #use List::Util qw(shuffle); #use MIME::Entity; #use XML::LibXML; #use XML::LibXSLT; #use XML::LibXML; #use Ernad::Constant; #use Ernad::Dates; #use Ernad::Files; #use Ernad::Generate; #use Ernad::Common; #use Krichel::Shoti; use base 'Ernad::Erimp'; sub get_files { my $e=shift; my $repcode=shift // confess "I need a report here."; my $issuedate=shift // confess "I need an issudate here."; my $how=shift // confess "I need to know how to return the files."; if(($how ne 'array') and ($how ne 'hash')) { confess "I don't know how, '$how'?"; } my @stages=('source/ps', 'source/us','source/sd', 'created','filtered', 'ordered', 'selected', 'sent'); my $rerc=$e->{'report'}->{$repcode}; if(not $rerc) { if(not $e->{'r'}) { confess "I don't have my recon object."; } $e->{'r'}->load($repcode); $rerc=$e->{'report'}->{$repcode}; } if(not $rerc) { confess "I don't know about your report '$repcode'."; } ## FixMe: there should be a better way to say this. my $dir=$e->{'dir'}->{'reports'}.'/'.$repcode; my $rif_ext=$e->{'const'}->{'rif_ext'}; my $count=0; my $files; my $glob; foreach my $stage (@stages) { $glob="$dir/$stage/$issuedate*$rif_ext"; foreach my $file (glob($glob),glob("$glob.gz")) { if($how eq 'array') { $files->[$count++]=$file; } elsif($how eq 'hash') { $files->{$file}=1; } } } return $files; } 1;