From: nhmall Date: Sat, 18 Jun 2022 14:29:15 +0000 (-0400) Subject: Guidebook datestamping X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98a4673a0c4098fc526f35dc717678649ec1f4b9;p=nethack Guidebook datestamping Allow the hints file to apply a correct timestamp to the Guidebooks prior to use. Detect the NH_DATESUB in the Guidebook.mn or Guidebook.tex files and replace the datestamping line that follows. If git is available, it determines the hash of the last commit applied to doc/Guidebook.mn, and then determines the date of that commit. The interim Guidebook.dated.mn (or Guidebook.dated.tex) gets the datestamp applied. If git isn't available or doesn't correctly provide the hash for doc/Guidebook.mn, it should just continue to use whatever hard-coded date in the Guidebook.mn source file (it uses it instead of the interim file). --- diff --git a/doc/.gitignore b/doc/.gitignore index f96d534c2..dfd019421 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -12,5 +12,6 @@ Guidebook.dvi Guidebook.log Guidebook.pdf Guidebook.ps +Guidebook.dated.* *.synctex.* diff --git a/sys/unix/Makefile.doc b/sys/unix/Makefile.doc index a30787e5a..fde65e16f 100644 --- a/sys/unix/Makefile.doc +++ b/sys/unix/Makefile.doc @@ -47,26 +47,31 @@ NEEDMAKEDEFS = $(MAKEDEFS) #NHGREP = cat #NEEDMAKEDEFS = -GUIDE_PREFORMAT = cat Guidebook.mn | $(NHGREP) | tbl tmac.n - +GUIDEBOOK_MN_SRC = Guidebook.mn +GUIDEBOOK_MN = $(GUIDEBOOK_MN_SRC) +GUIDEBOOK_TEX_SRC = Guidebook.tex +GUIDEBOOK_TEX = $(GUIDEBOOK_TEX_SRC) + +GUIDE_PREFORMAT = cat $(GUIDEBOOK_MN) | $(NHGREP) | tbl tmac.n - # for Guidebook.dat, unpaginated version of Guidebook.txt -ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn Guidebook.mn Gbk-1pg-sfx.mn \ +ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn $(GUIDEBOOK_MN) Gbk-1pg-sfx.mn \ | $(NHGREP) | tbl tmac.n - # the basic guidebook -Guidebook : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS) +Guidebook : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS) $(GUIDECMD) > Guidebook # Fancier output for those with ditroff, psdit and a PostScript printer. -Guidebook.ps : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS) +Guidebook.ps : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS) $(GUIDE_PREFORMAT) | $(PSCMD) > Guidebook.ps # Guidebook.tex is the same as Guidebook.mn but formatted with LaTeX. # - The invocation command for LaTeX may vary in different installations. # - To print Guidebook.dvi you need to use a suitable dvi-driver. # - LaTeX needs to be run twice; second pass uses Guidebook.aux made by first. -Guidebook.dvi : Guidebook.tex - latex Guidebook.tex - latex Guidebook.tex +Guidebook.dvi : $(GUIDEBOOK_TEX) + latex $(GUIDEBOOK_TEX) + latex $(GUIDEBOOK_TEX) # makedefs has more dependencies than these; this is mainly to cope with the # case where it hasn't been built yet since it is usually needed for $(NHGREP) @@ -97,17 +102,17 @@ manpages: -$(MDMANCREATE) $(MANDIR)/makedefs.$(MANEXT) # manual creation for distribution -DISTRIB = Guidebook.txt nethack.txt recover.txt \ +DISTRIB = $(GUIDEBOOK_TEX) nethack.txt recover.txt \ dlb.txt makedefs.txt distrib: $(DISTRIB) @echo "Plain text documentation is up to date." -Guidebook.txt : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS) - $(GUIDECMD) > Guidebook.txt -Guidebook.dat : Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn Guidebook.mn tmac.n tmac.nh \ +Guidebook.txt : $(GUIDEBOOK_MN) tmac.n tmac.nh $(NEEDMAKEDEFS) + $(GUIDECMD) > $@ +Guidebook.dat : Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn $(GUIDEBOOK_MN) tmac.n tmac.nh \ $(NEEDMAKEDEFS) - $(ONEPAGECMD) > Guidebook.dat + $(ONEPAGECMD) > $@ MAN2TXT = $(NHGREP) | nroff -man - | $(COLCMD) nethack.txt : nethack.6 @@ -120,7 +125,7 @@ makedefs.txt : makedefs.6 cat makedefs.6 | $(MAN2TXT) > makedefs.txt clean: - -rm -f Guidebook.aux Guidebook.log + -rm -f Guidebook.aux Guidebook.log $(DOC_EXTRAS) spotless: clean -rm -f Guidebook Guidebook.dat Guidebook.ps Guidebook.dvi diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index 66b3bf375..e64b8718f 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -154,6 +154,9 @@ submodules/lua/lua.h: Guidebook: ( cd doc ; $(MAKE) Guidebook ) +Guidebook.txt: + ( cd doc ; $(MAKE) Guidebook.txt ) + manpages: ( cd doc ; $(MAKE) manpages ) diff --git a/sys/unix/hints/include/gbdates-post.370 b/sys/unix/hints/include/gbdates-post.370 new file mode 100755 index 000000000..556e8ef61 --- /dev/null +++ b/sys/unix/hints/include/gbdates-post.370 @@ -0,0 +1,10 @@ +# NetHack 3.7 gbdates-post.370 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $ +ifdef MAKEFILE_DOC +ifdef GB_DATESTAMP +Guidebook.dated.mn: $(GUIDEBOOK_MN_SRC) + @awk 'f{$$0=".ds f2 \"$(GB_DATESTAMP)";f=0}/NH_DATESUB/{f=1} 1' < $(GUIDEBOOK_MN_SRC) > $@ +Guidebook.dated.tex: $(GUIDEBOOK_TEX_SRC) + @awk 'f{$$0="\\date{$(GB_DATESTAMP)}";f=0}/NH_DATESUB/{f=1} 1' < $(GUIDEBOOK_TEX_SRX) > $@ +endif # GB_DATESTAMP +endif # MAKEFILE_DOC +# diff --git a/sys/unix/hints/include/gbdates-pre.370 b/sys/unix/hints/include/gbdates-pre.370 new file mode 100755 index 000000000..4bfbfb894 --- /dev/null +++ b/sys/unix/hints/include/gbdates-pre.370 @@ -0,0 +1,17 @@ +# NetHack 3.7 gbdates-pre.370 $NHDT-Date: 1599687610 2020/09/09 21:40:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $ + +ifdef MAKEFILE_DOC +ifneq "$(GIT)" "0" +#Get the hash of the last update to Guidebook.mn +GB_LAST_COMMIT := $(shell git log -n 1 --pretty=format:%H -- Guidebook.mn) +ifneq "$(GB_LAST_COMMIT)" "" +GB_DATESTAMP := $(shell git show -s --format=%cd --date=format:'%B %d, %Y' $(GB_LAST_COMMIT)) +endif # GB_LAST_COMMIT +ifneq "$(GB_DATESTAMP)" "" +DOC_EXTRAS += Guidebook.dated.mn Guidebook.dated.tex +override GUIDEBOOK_MN = Guidebook.dated.mn +override GUIDEBOOK_TEX = Guidebook.dated.tex +endif # GB_DATESTAMP +endif # GIT=0 explicitly +endif # MAKEFILE_DOC +# diff --git a/sys/unix/hints/linux.370 b/sys/unix/hints/linux.370 index fe81cc7c0..f1cfaa016 100755 --- a/sys/unix/hints/linux.370 +++ b/sys/unix/hints/linux.370 @@ -336,7 +336,17 @@ GAMEPERM = 0755 # #-INCLUDE cross-pre.370 # + +# +#-INCLUDE gbdates-pre.370 +# + #-POST + +# +#-INCLUDE gbdates-post.370 +# + # #-INCLUDE cross-post.370 # diff --git a/sys/unix/hints/macOS.370 b/sys/unix/hints/macOS.370 index 288b1b9ee..7ad0f6d38 100755 --- a/sys/unix/hints/macOS.370 +++ b/sys/unix/hints/macOS.370 @@ -409,8 +409,15 @@ VARDIR=$(HACKDIR) # #-INCLUDE cross-pre.370 # +# +#-INCLUDE gbdates-pre.370 +# #-POST +# +#-INCLUDE gbdates-post.370 +# + ifdef WANT_LIBNH $(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a $(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a