Skip to content

Commit

Permalink
doc: Error out properly when a generator fails
Browse files Browse the repository at this point in the history
In make only timestamps and return values matter. And the shell will create a
file and update its timestamp when it sees an output redirection. No matter if
the program driving the redirected data fails or not.

So even if the first generator run fails, rerunning make will work, with things
looking like they worked out just fine.

This fixes the issue by running the separate steps toward file generation one
by one.

This issue was brought up by Edward E. (cbrt64 on github) in PR#135 on github¹,
including a proof-of-concept implementation, as well as valuable feedback. This
implementation was derived from it. See the pull-request log for details.

¹ #135
  • Loading branch information
ft committed Feb 8, 2022
1 parent 08c2f2e commit 4a3593b
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions doc/Makefile
Expand Up @@ -7,18 +7,23 @@ all: $(MANPAGES) $(HTMLPAGES)
.SUFFIXES: .t2t .5 .html

.t2t.5:
@printf 'TXT2TAGS %s > %s\n' "$<" "$@"
@txt2tags --target man -o- $< | sed -e '/^$$/d' -e 's/^\\e$$//' > $@
@printf 'TXT2TAGS %s\n' "$@"
@txt2tags --quiet --target man -o$@.pre $<
@sed -e '/^$$/d' -e 's/^\\e$$//' < $@.pre > $@.tmp
@rm $@.pre
@mv $@.tmp $@

.t2t.html:
@printf 'TXT2TAGS %s > %s\n' "$<" "$@"
@txt2tags --target html --style t2t-modern.css -o- $< \
| sed -e '/^$$/d' -e 's/^\\$$//' > $@
@printf 'TXT2TAGS %s\n' "$@"
@txt2tags --quiet --target html --style t2t-modern.css -o$@.pre $<
@sed -e '/^$$/d' -e 's/^\\$$//' < $@.pre > $@.tmp
@rm $@.pre
@mv $@.tmp $@

clean:
rm -f *.5 *.html *.gz *~
rm -f *.5 *.html *.gz *.pre *.tmp *~

online: all
scp grmlzshrc.html t2t-modern.css grml:/var/www/grml/zsh/

.PHONY: all clean
.PHONY: all clean online

0 comments on commit 4a3593b

Please sign in to comment.