Metabrik-Repository
view release on metacpan or search on metacpan
lib/Metabrik/Database/Vfeed.pm view on Meta::CPAN
commands => {
db_version => [ ],
update => [ ],
cve => [ qw(cve_id) ],
},
require_modules => {
'Data::Dumper' => [ ],
'vFeed::DB' => [ ],
'vFeed::Log' => [ ],
'Metabrik::Client::Www' => [ ],
'Metabrik::File::Compress' => [ ],
},
};
}
sub db_version {
my $self = shift;
my $db = $self->db;
my $datadir = $self->datadir;
my $log = vFeed::Log->new;
my $vfeed = vFeed::DB->new(
log => $log,
file => $datadir.'/'.$db,
);
$vfeed->init;
return $vfeed->db_version;
}
sub cve {
my $self = shift;
my ($id) = @_;
$self->brik_help_run_undef_arg('cve', $id) or return;
my $db = $self->db;
my $datadir = $self->datadir;
my $log = vFeed::Log->new;
my $vfeed = vFeed::DB->new(
log => $log,
file => $datadir.'/'.$db,
);
$vfeed->init;
my $cve = $vfeed->get_cve($id);
my $cpe = $vfeed->get_cpe($id);
my $cwe = $vfeed->get_cwe($id);
return {
cve => $cve,
cpe => $cpe,
cwe => $cwe,
};
}
sub update {
my $self = shift;
my $db = $self->db;
my $datadir = $self->datadir;
my $url = 'http://www.toolswatch.org/vfeed/vfeed.db.tgz';
my $cw = Metabrik::Client::Www->new_from_brik_init($self) or return;
my $files = $cw->mirror($url, 'vfeed.db.tgz', $datadir);
if (@$files) { # An update was found
$self->log->info("update: a new version was found");
my $fc = Metabrik::File::Compress->new_from_brik_init($self) or return;
$fc->uncompress($files->[0], $db, $datadir) or return;
}
return $self->db_version;
}
1;
__END__
=head1 NAME
Metabrik::Database::Vfeed - database::vfeed Brik
=head1 COPYRIGHT AND LICENSE
Copyright (c) 2014-2022, Patrice E<lt>GomoRE<gt> Auffret
You may distribute this module under the terms of The BSD 3-Clause License.
See LICENSE file in the source distribution archive.
=head1 AUTHOR
Patrice E<lt>GomoRE<gt> Auffret
=cut
( run in 0.820 second using v1.01-cache-2.11-cpan-39bf76dae61 )