aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MGA
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MGA')
-rw-r--r--lib/MGA/Advisories.pm24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/MGA/Advisories.pm b/lib/MGA/Advisories.pm
index 63b6953..3c9e147 100644
--- a/lib/MGA/Advisories.pm
+++ b/lib/MGA/Advisories.pm
@@ -144,6 +144,7 @@ sub get_advisories_from_dir {
my $adv = LoadFile($advfile);
if (!$adv->{ID}) {
next unless $config->{mode} eq 'qa';
+ $adv->{ref} = basename($advfile, ".adv");
$adv->{ID} = next_id('TODO', keys %advisories);
$adv->{no_save_status} = 1;
}
@@ -357,6 +358,29 @@ sub assign_id {
}
}
+sub assign_ids {
+ # Ensure users local repo is up to date
+ my $exitstatus = system("svn up");
+ if ( 0 != $exitstatus ) {
+ print STDERR "Subversion update appears to have failed.\n";
+ return;
+ }
+
+ my %advdb;
+ $advdb{advisories} = get_advisories_from_dir();
+ sort_advisories(\%advdb);
+ output_pages();
+
+ # We will have exited by now in the event of e.g. a Yaml or processing error
+
+ foreach my $advfile (glob "$config->{advisories_dir}/*.adv") {
+ my $adv = LoadFile($advfile);
+ next if ($adv->{ID});
+ assign_id(basename($advfile, ".adv"));
+ print "\n";
+ }
+}
+
sub advdb_dumpfile {
$config->{advdb_dumpfile} || $ENV{HOME} . '/.mga-advisories/advisories.yaml';
}