#!/usr/bin/perl -w use strict; use MGA::Advisories; use Template; my %actions = ( mksite => { run => \&mksite, usage => < { run => \&newadv, usage => < { run => \&usage, usage => <{usage}; } else { print STDERR "$0 [action] [options]\n"; print STDERR "$0 usage [action]\n\n"; print STDERR "Available actions:\n"; print STDERR map { " - $_\n" } keys %actions; } } sub usageexit { usage(@_); exit 1; } sub mksite { my %advdb; $advdb{advisories} = MGA::Advisories::get_advisories(); MGA::Advisories::publish_advisories(\%advdb); MGA::Advisories::sort_advisories(\%advdb); MGA::Advisories::output_pages(\%advdb); MGA::Advisories::dumpdb(\%advdb); MGA::Advisories::send_adv_mail(\%advdb); MGA::Advisories::send_report_mail(\%advdb); } sub newadv { usageexit('usage', $_[0]) unless @_ == 3; my ($new, $type, $bugnum) = @_; my $file = MGA::Advisories::newadv($type, $bugnum); if ($file) { my $editor = $ENV{EDITOR} || $ENV{VISUAL} || '/usr/bin/editor'; system($editor, $file); } } if (@ARGV == 0 || !$actions{$ARGV[0]}) { usageexit(); } $actions{$ARGV[0]}->{run}->(@ARGV);