From 4d19d3a79188591a25d325128d2ed0a153766577 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 24 Jan 2020 22:09:29 +0000 Subject: doc: avoid needless rebuilds of NEWS Repeatedly rebuilding `NEWS' because the mtime of `NEWS' is synched to the latest release .eml is a bit annoying, but necessary to save bandwidth for the website. So we'll also update the mtime of the source .eml file when reading them. It's kinda gross to be setting mtimes of source .eml files in Documentation/RelNotes/, but I can't think of anything better at the moment... --- Documentation/include.mk | 7 +------ Documentation/mknews.perl | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'Documentation') diff --git a/Documentation/include.mk b/Documentation/include.mk index 0229bf40..3d88fcec 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -62,12 +62,7 @@ Documentation/standards.txt : Documentation/standards.perl touch -r Documentation/standards.perl $@+ mv $@+ $@ -RELEASES = -RELEASES += v1.2.0 -RELEASES += v1.1.0-pre1 -RELEASES += v1.0.0 - -NEWS NEWS.atom NEWS.html : Documentation/include.mk +NEWS NEWS.atom NEWS.html : $(news_deps) $(PERL) -I lib -w Documentation/mknews.perl $@ $(RELEASES) # check for internal API changes: diff --git a/Documentation/mknews.perl b/Documentation/mknews.perl index 3efabdb5..71b1a996 100755 --- a/Documentation/mknews.perl +++ b/Documentation/mknews.perl @@ -21,8 +21,8 @@ my $atom_url = 'https://public-inbox.org/NEWS.atom'; my $addr = 'meta@public-inbox.org'; my $latest = shift(@releases) or die 'no releases?'; -my $mime_latest = release2mime($latest); -my $mtime = msg_datestamp($mime_latest->header_obj); +my $mtime; +my $mime_latest = release2mime($latest, \$mtime); my $tmp = "$dst+"; my $out; if ($dst eq 'NEWS') { @@ -73,9 +73,17 @@ rename($tmp, $dst) or die; exit 0; sub release2mime { - my $f = "$dir/$_[0].eml"; + my ($release, $mtime_ref) = @_; + my $f = "$dir/$release.eml"; open(my $fh, '<', $f) or die "open($f): $!"; - PublicInbox::MIME->new(do { local $/; <$fh> }); + my $mime = PublicInbox::MIME->new(do { local $/; <$fh> }); + # Documentation/include.mk relies on mtimes of each .eml file + # to trigger rebuild, so make sure we sync the mtime to the Date: + # header in the .eml + my $mtime = msg_datestamp($mime->header_obj); + utime($mtime, $mtime, $fh) or warn "futimes $f: $!"; + $$mtime_ref = $mtime if $mtime_ref; + $mime; } sub mime2txt { -- cgit v1.2.3-24-ge0c7