aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLee Garrett <lgarrett@rocketjump.eu>2023-03-07 20:52:05 +0100
committerLee Garrett <lgarrett@rocketjump.eu>2023-03-09 17:00:55 +0100
commit7be02a05384b1f4ac2f3bb44771abeb86b51deb9 (patch)
treeaef8da24178a3f83b1c6d477dc00ab939416c80b
parentc5d920a90bf4ae07093de7ad5cb68c9f89459123 (diff)
parse-dla.pl: Fix debug mode
Running with -d would write .data to the literal file "-" and error on the .wml. This presumably worked correctly in the past, writing to STDOUT. So fix that, and also: - only check if .wml/.data exists if we write to it - Use lexical filehandles instead of bareword filehandles (recommended since perl 5.6) - Iterate with while over lines instead of slurping it (See PBP p. 209) - Explicitely return undef in functions instead of last value (See PBP p. 197)
-rwxr-xr-xenglish/lts/security/parse-dla.pl60
1 files changed, 33 insertions, 27 deletions
diff --git a/english/lts/security/parse-dla.pl b/english/lts/security/parse-dla.pl
index ac59cbcf2da..7d4679f5ea0 100755
--- a/english/lts/security/parse-dla.pl
+++ b/english/lts/security/parse-dla.pl
@@ -35,13 +35,13 @@ my %shortmoy = ( en => [
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]
);
-open my $fh, '<', $adv or die "couldn't open advisory file $adv: $!\n";
+open(my $fh, '<', $adv) or die "couldn't open advisory file $adv: $!\n";
my ($dla, $date, $package, $version, @dbids, $moreinfo, $year);
$package = $moreinfo = $dla = '';
$year = strftime "%Y", localtime;
$date = strftime "%Y-%m-%d", localtime;
my ($nl, $mi, $headersnearingend);
-foreach my $l (<$fh>) {
+while (my $l = <$fh>) {
$l = decode_qp($l);
# match Subject line or advisory header to retrieve DLA string
if (
@@ -173,7 +173,6 @@ if (defined($package) && $dla =~ /DLA[- ](\d+)-(\d+)/ ) {
} else {
die "Could not parse advisory filename '$adv'. DLA name missing in '$dla'\n";
}
-$data = $wml = "-" if ($debug);
if (!(-d $year)){
mkdir($year);
@@ -183,33 +182,40 @@ if (!(-d $year)){
&make_wml;
sub make_data{
- if (-f $data){
- print STDERR "Data file \"$data\" already exists for advisory in file '$adv'\n";
- return;
+ my $fh = *STDOUT;
+ if (not $debug) {
+ if (-f $data){
+ print STDERR "Data file \"$data\" already exists for advisory in file '$adv'\n";
+ return;
+ }
+ open($fh, ">", "$data") or die "Can't write to data file \"$data\": $!";
}
- open DATA, ">", "$data" or die "Can't write to data file \"$data\"";
- print DATA "<define-tag pagetitle>$pagetitle</define-tag>\n";
- print DATA "<define-tag report_date>$date</define-tag>\n";
- print DATA "<define-tag secrefs>@dbids</define-tag>\n" if @dbids;
- print DATA "<define-tag packages>$package</define-tag>\n";
- print DATA "<define-tag isvulnerable>yes</define-tag>\n";
- print DATA "<define-tag fixed>yes</define-tag>\n";
- print DATA "<define-tag fixed-section>no</define-tag>\n"; # Kaare, 2011-01-24: Line added because the "fixed in" section is no longer available
- print DATA "\n#use wml::debian::security\n\n";
- close DATA;
+ print $fh "<define-tag pagetitle>$pagetitle</define-tag>\n";
+ print $fh "<define-tag report_date>$date</define-tag>\n";
+ print $fh "<define-tag secrefs>@dbids</define-tag>\n" if @dbids;
+ print $fh "<define-tag packages>$package</define-tag>\n";
+ print $fh "<define-tag isvulnerable>yes</define-tag>\n";
+ print $fh "<define-tag fixed>yes</define-tag>\n";
+ print $fh "<define-tag fixed-section>no</define-tag>\n"; # Kaare, 2011-01-24: Line added because the "fixed in" section is no longer available
+ print $fh "\n#use wml::debian::security\n\n";
+ close $fh if not $debug;
+ return
}
sub make_wml{
- if (-f $wml){
- print STDERR "WML file \"$wml\" already exists for advisory in file '$adv'\n";
- return;
+ my $fh = *STDOUT;
+ if (not $debug) {
+ if (-f $wml){
+ print STDERR "WML file \"$wml\" already exists for advisory in file '$adv'\n";
+ return;
+ }
+ open($fh, ">", "$wml") or die "Can't write to WML file \"$wml\": $!";
}
- open WML, ">", "$wml" or die "Can't write to WML file \"$wml\"";
- print WML "<define-tag description>LTS security update</define-tag>\n";
- print WML "<define-tag moreinfo>$moreinfo\n</define-tag>\n";
- print WML "\n# do not modify the following line\n";
- print WML "#include \"\$(ENGLISHDIR)/lts/security/$data\"\n";
- printf WML "# %sId: \$\n", "\$";
- close WML;
+ print $fh "<define-tag description>LTS security update</define-tag>\n";
+ print $fh "<define-tag moreinfo>$moreinfo\n</define-tag>\n";
+ print $fh "\n# do not modify the following line\n";
+ print $fh "#include \"\$(ENGLISHDIR)/lts/security/$data\"\n";
+ printf $fh "# %sId: \$\n", "\$";
+ close $fh if not $debug;
+ return;
}
-

© 2014-2024 Faster IT GmbH | imprint | privacy policy