Changeset 46


Ignore:
Timestamp:
11/23/05 15:33:24 (19 years ago)
Author:
thauvin
Message:
  • use object for init_repository
  • don't print to STDOUT anymore
  • improve load()
Location:
trunk/soft/ObsData
Files:
3 edited

Legend:

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

    • Property cvs2svn:cvs-rev changed from 1.10 to 1.11
    r44 r46  
    4646            -allowcontinue => 1 
    4747        ), 
    48         verbose => 1, 
     48        verbose => defined($options{verbose}) ? $options{verbose} : 1, 
     49        logcallback => $options{logcallback}, 
     50        dir => $options{dir}, 
     51 
    4952    }; 
    5053 
     
    5558    $obsdata->{config} or return undef; 
    5659 
    57     $obsdata->{dir} = $options{dir} || $obsdata->{config}->val('global', 'dir'); 
    58  
    5960    bless($obsdata, $class); 
     61 
    6062} 
    6163 
     
    7375    my ($self) = @_; 
    7476 
     77    if (! ($self->{dir} ||= $self->{config}->val('global', 'dir'))) { 
     78        $self->loging(5, "Data directory not defined", $self->{dir}); 
     79        return 0; 
     80    } 
     81     
     82    if (! -d $self->{dir}) { 
     83        $self->loging(5, "Data directory %s does not exists", $self->{dir}); 
     84        return 0; 
     85    } 
     86 
    7587    if (!open($self->{loghandle}, ">> $self->{dir}/logs/obsdata.log")) { 
     88        $self->{loghandle} = undef; 
    7689        $self->loging(5, "Can't open log file %s, exiting", "$self->{dir}/logs/obsdata.log"); 
    7790        return 0; 
     
    8497    my ($self, $level, $fmt, @val) = @_; 
    8598    my $msg = sprintf($fmt, @val); 
    86     my $logh = $self->{loghandle} || \*STDERR; 
     99    my $logh = $self->{loghandle}; 
    87100    if($level >= 0 && $level >= $self->{verbose}) { 
    88101        if ($self->{logcallback}) { 
    89102            $self->{logcallback}->($level, $msg); 
    90103        } 
    91         printf $logh  
    92             "[%s] %s %s\n", $loglevel[$level] || "coin", 
    93             strftime("%b %d %H:%M:%S %Y", gmtime), 
    94             $msg; 
     104        if ($logh) { 
     105            printf $logh  
     106                "[%s] %s %s\n", $loglevel[$level] || "coin", 
     107                strftime("%b %d %H:%M:%S %Y", gmtime), 
     108                $msg; 
     109        } 
    95110    } 
    96111    $msg 
     
    98113 
    99114sub init_repository { 
    100     my ($dir) = @_; 
    101  
    102     if (!-d $dir) { 
    103         mkdir $dir or return 0; 
    104     } 
    105  
    106     if (!-d "$dir/logs") { 
    107         mkdir "$dir/logs" or return 0; 
     115    my ($self) = @_; 
     116 
     117    if (!-d $self->{dir}) { 
     118        mkdir $self->{dir} or return 0; 
     119    } 
     120 
     121    if (!-d "$self->{dir}/logs") { 
     122        mkdir "$self->{dir}/logs" or return 0; 
    108123    }  
    109124 
    110     my $db = DBI->connect("dbi:SQLite:dbname=$dir/obsdata.db","","", 
     125    my $db = DBI->connect("dbi:SQLite:dbname=$self->{dir}/obsdata.db","","", 
    111126        { RaiseError => 1, AutoCommit => 1} 
    112127    ) or return 0; 
    113128 
    114     my $odr = ObsData->new(undef, dir => $dir); 
    115     $odr->load or return 0; 
    116     $odr->loging(1, "Repository succefully created in %s", $dir); 
     129    $self->load or return 0; 
     130    $self->loging(1, "Repository succefully created in %s", $self->{dir}); 
    117131 
    118132    1; 
     
    231245} 
    232246 
     247sub find_file_obs { 
     248    my ($self, $obs) = @_; 
     249    my %datadir = $self->list_obsdatadir($obs); 
     250    $self->loging(0, "Starting %s() for %s", (caller(0))[3], $obs); 
     251     
     252    foreach my $datatype (keys %datadir) { 
     253        if(opendir(my $dirhandle, $datadir{$datatype})) { 
     254            close($dirhandle); 
     255        } else { 
     256            $self->loging(5, "can't open directory %s set for %s", $datadir{$datatype}, $obs); 
     257        } 
     258    } 
     259} 
     260 
    2332611; 
  • trunk/soft/ObsData/t/O-01.t

    • Property cvs2svn:cvs-rev changed from 1.4 to 1.5
    r43 r46  
    11# $Id$ 
    22 
    3 use Test::More tests => 5; 
     3use Test::More tests => 4; 
    44 
    55use_ok('ObsData'); 
     
    99can_ok('ObsData', qw(list_obs list_obsdatadir list_typedatadir get_datadir getvalue is_obs)); 
    1010 
    11 ok(ObsData->new('testdata/obsdata-conftest'), "Can create object"); 
    1211ok(!ObsData->new('testdata/wrongfile'), "Return an error on bad file"); 
  • trunk/soft/ObsData/t/O-02.t

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r43 r46  
    11# $Id$ 
    22 
    3 use Test::More tests => 15; 
     3use Test::More tests => 16; 
    44use File::Temp qw(tempdir); 
    55 
     
    77 
    88my $td = tempdir; 
    9 ok(ObsData::init_repository($td), "Can initialize repos data"); 
     9{ 
     10my $o = ObsData->new(undef, dir => $td); 
     11ok($o->init_repository($td), "Can initialize repos data"); 
    1012ok(-f "$td/obsdata.db", "db is really create"); 
    1113ok(-d "$td/logs", "log directory exists"); 
     14} 
    1215 
    1316ok(my $o = ObsData->new('testdata/obsdata-conftest', dir => $td), "Can create object"); 
     17ok($o->load, "can load repository"); 
    1418ok($o->is_obs('ohp'), "Isobs works"); 
    1519ok(!$o->is_obs('ozone'), "Isobs works"); 
Note: See TracChangeset for help on using the changeset viewer.