diff options
author | regnat <rg@regnat.ovh> | 2021-07-16 14:15:38 +0200 |
---|---|---|
committer | regnat <rg@regnat.ovh> | 2021-07-19 16:55:56 +0200 |
commit | c5f5d615a66c2b9411857914893eb854796a482f (patch) | |
tree | 23bd27d34f8edf98b727b55389816bb876479198 /doc/manual | |
parent | db4d4cf4ba42727edd8cc5a6c516554fb8a6b688 (diff) |
Cleanup the generation of the nix3 manpages
Use a dedicated make target for the man page rather than bundling the
generation as part of `install`.
Also make sure that `make install` is a fixpoint by
- Removing the generated markdown files from `MANUAL_SRCS`
- Not having the manpage generation write in its source directory so as
to not update its timestamp (it would run each time otherwise)
Diffstat (limited to 'doc/manual')
-rw-r--r-- | doc/manual/local.mk | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/doc/manual/local.mk b/doc/manual/local.mk index e25157af8..435301279 100644 --- a/doc/manual/local.mk +++ b/doc/manual/local.mk @@ -1,6 +1,8 @@ ifeq ($(doc_generate),yes) -MANUAL_SRCS := $(call rwildcard, $(d)/src, *.md) +ALL_MD_FILES := $(call rwildcard, $(d)/src, *.md) +GENERATED_MD_FILES := $(call rwildcard, $(d)/src/command-ref/new-cli, *.md) +MANUAL_SRCS := $(filter-out $(GENERATED_MD_FILES), $(ALL_MD_FILES)) # Generate man pages. man-pages := $(foreach n, \ @@ -75,13 +77,20 @@ $(d)/builtins.json: $(bindir)/nix install: $(docdir)/manual/index.html # Generate 'nix' manpages. -install: $(d)/src/command-ref/new-cli +install: $(mandir)/man1/nix3-build.1 + +# Technically this rule generates all the `nix3-*` manpages, but since we don’t +# know their list statically and they are all generated at once anyways, we can +# just be dirty and only track one +$(mandir)/man1/nix3-build.1: $(d)/src/command-ref/new-cli $(trace-gen) for i in doc/manual/src/command-ref/new-cli/*.md; do \ name=$$(basename $$i .md); \ + tmpFile=$$(mktemp); \ if [[ $$name = SUMMARY ]]; then continue; fi; \ - printf "Title: %s\n\n" "$$name" > $$i.tmp; \ - cat $$i >> $$i.tmp; \ - lowdown -sT man -M section=1 $$i.tmp -o $(mandir)/man1/$$name.1; \ + printf "Title: %s\n\n" "$$name" > $$tmpFile; \ + cat $$i >> $$tmpFile; \ + lowdown -sT man -M section=1 $$tmpFile -o $(mandir)/man1/$$name.1; \ + rm $$tmpFile; \ done $(docdir)/manual/index.html: $(MANUAL_SRCS) $(d)/book.toml $(d)/custom.css $(d)/src/SUMMARY.md $(d)/src/command-ref/new-cli $(d)/src/command-ref/conf-file.md $(d)/src/expressions/builtins.md |