Changeset 92


Ignore:
Timestamp:
12/02/05 14:13:48 (19 years ago)
Author:
thauvin
Message:
  • add function for data file
Location:
trunk/soft/ObsData
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/soft/ObsData/ObsData/Repository.pm

    • Property cvs2svn:cvs-rev changed from 1.30 to 1.31
    r91 r92  
    274274} 
    275275 
    276 sub update_status { 
    277     my ($self) = @_; 
    278     my @filestats = stat("$self->{dir}/$self->{archivefile}"); 
    279     if (!$self->{status}->SectionExists($self->{archivefile})) { 
    280         $self->{status}->AddSection($self->{archivefile}); 
    281     } 
    282     $self->{status}->newval($self->{archivefile}, 'mtime', $filestats[9]); 
    283     $self->{status}->newval($self->{archivefile}, 'size', $filestats[7]); 
    284  
    285     $self->{status}->newval($self->{archivefile}, 'configtime', $self->{obsdata}->config_mtime); 
    286 } 
    287  
    288276sub parse_archive { 
    289277    my ($self) = @_; 
     
    299287        $data->dispatch; 
    300288    } 
     289    return 1; 
     290} 
     291 
     292sub update_status { 
     293    my ($self) = @_; 
     294    my @filestats = stat("$self->{dir}/$self->{archivefile}"); 
     295    if (!$self->{status}->SectionExists($self->{archivefile})) { 
     296        $self->{status}->AddSection($self->{archivefile}); 
     297    } 
     298    $self->{status}->newval($self->{archivefile}, 'mtime', $filestats[9]); 
     299    $self->{status}->newval($self->{archivefile}, 'size', $filestats[7]); 
     300 
     301    $self->{status}->newval($self->{archivefile}, 'configtime', $self->{obsdata}->config_mtime); 
     302} 
     303 
     304# Sub data function: 
     305 
     306sub get_data_dest { 
     307    my ($self, $datafile) = @_; 
     308 
     309    my ($t, $d) = $self->{obsdata}->build_dest_filename( 
     310        $datafile, 
     311        $self->{datatype} 
     312    ); 
     313    $self->loging(0, "%s/%s file, datatype %s, destination %s", 
     314        $self->{archivefile}, 
     315        $self->{datafile}, 
     316        $t || '(none)', 
     317        $d || '(none)', 
     318    ); 
     319    if ($t) { 
     320        $self->{status}->newval($self->{archivefile}, "data_type_$datafile", $t); 
     321    } 
     322    return($t, $d); 
     323} 
     324 
     325sub extract_data { 
     326    # $datatype, informationnal only here 
     327    my ($self, $datafile, $datatype, $destfile) = @_; 
     328    $self->load_archive or return 0; 
     329    my $ltime = time; 
     330     
     331    if (!$destfile) { 
     332        $self->loging(3, 
     333            "%s/%s has no destination", 
     334            $self->{archivefile}, $datafile, 
     335        ); 
     336        return 0; 
     337    } 
     338     
     339    $self->loging(0, 
     340        "Trying to extract %s from %s/%s", 
     341        $destfile, 
     342        $self->{archivefile}, $datafile 
     343    ); 
     344 
     345    my ($dirname) = $destfile =~ m!(?:(.*)/)?(.*)$!; #! vim syntax sux 
     346     
     347    if ($dirname && ! -d $dirname) { 
     348        $self->loging(0, "Creating directory %s", $dirname); 
     349        if( ! File::Path::mkpath($dirname)) {  
     350            $self->loging( 
     351                4, "Can't create directory %s",  
     352                $dirname 
     353            ); 
     354            return 0; 
     355        } 
     356    } 
     357 
     358    if ($self->{Oarchive}->extract($datafile, $destfile)) { 
     359        $self->{status}->newval($self->{archivefile}, "data_dest_$datafile", $destfile); 
     360        $self->loging( 
     361            1, "Extraction of %s/%s done as %s", 
     362            $self->{archivefile}, 
     363            $datafile, 
     364            $destfile, 
     365        ); 
     366             
     367    } else { 
     368        $self->loging( 
     369            4, "Can't extract %s/%s to %s: %s", 
     370            $self->{archivefile}, $datafile, $destfile, 
     371            $self->{Oarchive}->error, 
     372        ); 
     373        return 0; 
     374    } 
     375 
     376        $self->{status}->newval( 
     377        $self->{archivefile}, 
     378        "data_processtime_$datafile", 
     379        $ltime 
     380    ); 
     381    $self->{status}->newval( 
     382        $self->{archivefile}, 
     383        "data_processversion_$datafile", 
     384        $ObsData::VERSION 
     385    ); 
     386 
     387    $self->{status}->SetParameterComment( 
     388        $self->{archivefile},  
     389        "data_processtime_$datafile", 
     390        scalar(localtime($ltime)) . 
     391        ", $ObsData::VERSION: $ObsData::CVSREV, $ObsData::Repository::CVSREV", 
     392    ); 
     393 
    301394    return 1; 
    302395} 
  • trunk/soft/ObsData/t/OR-03.t

    • Property cvs2svn:cvs-rev changed from 1.4 to 1.5
    r91 r92  
    11# $Id$ 
    22 
    3 use Test::More tests => 9; 
     3use Test::More tests => 11; 
    44use File::Temp qw(tempdir); 
    55 
     
    3333    ok($or->load_archive, "Can load an archive"); 
    3434    ok($or->list_archive, "Can list archive content"); 
     35    ok($or->get_data_dest('ozone34'), "Can get data destination"); 
     36    ok($or->extract_data('ozone34', undef, '/dev/null'), "Can extract data"); 
    3537} 
    3638 
Note: See TracChangeset for help on using the changeset viewer.