#!/usr/bin/perl -w
-# Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# Generates NEWS, NEWS.atom, and NEWS.html files using release emails
# this uses unstable internal APIs of public-inbox, and this script
use strict;
use PublicInbox::Eml;
use PublicInbox::View;
+use PublicInbox::Hval qw(fmt_ts);
use PublicInbox::MsgTime qw(msg_datestamp);
use PublicInbox::MID qw(mids mid_escape);
END { $INC{'Plack/Util.pm'} and warn "$0 should not have loaded Plack::Util\n" }
);
$ibx->{-primary_address} = $addr;
my $ctx = {
- -inbox => $ibx,
+ ibx => $ibx,
-upfx => "$base_url/",
-hr => 1,
};
my $title = $mime->header('Subject');
$title =~ s/^\s*\[\w+\]\s*//g; # [ANNOUNCE] or [ANN]
my $dtime = msg_datestamp($mime->header_obj);
- $title .= ' - ' . PublicInbox::View::fmt_ts($dtime) . ' UTC';
+ $title .= ' - ' . fmt_ts($dtime) . ' UTC';
print $out $title, "\n" or die;
my $uline = '=' x length($title);
print $out $uline, "\n\n" or die;
sub mime2html {
my ($out, $eml, $ctx) = @_;
- my $smsg = bless {}, 'PublicInbox::Smsg';
+ my $smsg = $ctx->{smsg} = bless {}, 'PublicInbox::Smsg';
$smsg->populate($eml);
- print $out PublicInbox::View::eml_entry($ctx, $smsg, $eml, 1) or die;
+ $ctx->{msgs} = [ 1 ]; # for <hr> in eml_entry
+ print $out PublicInbox::View::eml_entry($ctx, $eml) or die;
}
sub html_start {
}
sub html_end {
- print $out <<EOF or die;
- git clone $PublicInbox::WwwStream::CODE_URL
-</pre></body></html>
-EOF
+ for (@$PublicInbox::WwwStream::CODE_URL) {
+ print $out " git clone $_\n" or die;
+ }
+ print $out "</pre></body></html>\n" or die;
}
sub atom_start {
# WwwAtomStream stats this dir for mtime
my $astream = PublicInbox::WwwAtomStream->new($ctx);
delete $astream->{emit_header};
- my $ibx = $ctx->{-inbox};
+ my $ibx = $ctx->{ibx};
my $title = PublicInbox::WwwAtomStream::title_tag($ibx->description);
my $updated = PublicInbox::WwwAtomStream::feed_updated($mtime);
print $out <<EOF or die;