aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2014-11-24 19:36:52 +0000
committerColin Guthrie <colin@mageia.org>2014-11-25 10:30:51 +0000
commit62e6180b53eff8075f9c2dd8b359e972e190bc91 (patch)
treeb0e7e9396d6a219b272b8496b155dc3c361e8a5c /lib
parent2592347f89b5303dfdc8a448d5a705b913b4043c (diff)
downloadmgaadvisories-62e6180b53eff8075f9c2dd8b359e972e190bc91.tar
mgaadvisories-62e6180b53eff8075f9c2dd8b359e972e190bc91.tar.gz
mgaadvisories-62e6180b53eff8075f9c2dd8b359e972e190bc91.tar.bz2
mgaadvisories-62e6180b53eff8075f9c2dd8b359e972e190bc91.tar.xz
mgaadvisories-62e6180b53eff8075f9c2dd8b359e972e190bc91.zip
Add a 'publishall' option to attempt to publish all pending advisories.
Diffstat (limited to 'lib')
-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';
}