pve-docs/pve-doc-generator.mk.in
Christian Ebner 52ea774343 Fix 1891: Add zsh completion generator
This adds the generator needed for the autogeneration of zsh completion scripts
analogous to the generator creating the bash completion scripts.
In order to generate zsh completion scripts for other packages, a package
including this patch as well as the package in pve-common with the corresponding
patch have to be installed on the build system.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-02-20 12:11:25 +01:00

106 lines
3.1 KiB
Makefile

# also update debian/changelog
DOCRELEASE=5.3
DGDIR?=/usr/share/pve-doc-generator
ASCIIDOC_PVE?=/usr/bin/asciidoc-pve
PERL_DOC_ENV=PVE_GENERATING_DOCS=1
PERL_DOC_INC_DIRS:=${PERL_DOC_INC_DIRS} .
PERL_DOC_INC=$(foreach dir,${PERL_DOC_INC_DIRS},-I${dir})
PVE_COMMON_DOC_SOURCES= \
${ASCIIDOC_PVE} \
pve-copyright.adoc \
docinfo.xml
all:
attributes.txt docinfo.xml pmxcfs.8-synopsis.adoc qmeventd.8-synopsis.adoc:
cp ${DGDIR}/$@ $@.tmp
mv $@.tmp $@
%-opts.adoc: ${DGDIR}/gen-%-opts.pl
$(PERL_DOC_ENV) perl ${PERL_DOC_INC} ${DGDIR}/gen-$*-opts.pl >$@.tmp
mv $@.tmp $@
%.adoc: ${DGDIR}/gen-%-adoc.pl
$(PERL_DOC_ENV) perl ${PERL_DOC_INC} ${DGDIR}/gen-$*-adoc.pl >$@.tmp
mv $@.tmp $@
pveperf.1-synopsis.adoc:
echo '*pveperf* `[PATH]`' > pveperf.1-synopsis.adoc
%.1-synopsis.adoc:
$(PERL_DOC_ENV) perl ${PERL_DOC_INC} -e "use PVE::CLI::$(subst -,_,$*);print PVE::CLI::$(subst -,_,$*)->generate_asciidoc_synopsis();" > $@.tmp
mv $@.tmp $@
%.8-synopsis.adoc:
$(PERL_DOC_ENV) perl ${PERL_DOC_INC} -e "use PVE::Service::$(subst -,_,$*);print PVE::Service::$(subst -,_,$*)->generate_asciidoc_synopsis();" > $@.tmp
mv $@.tmp $@
ifneq (${DGDIR},.)
%.adoc: ${DGDIR}/%.adoc
cp $< $@.tmp
mv $@.tmp $@
endif
%.service-bash-completion:
perl ${PERL_DOC_INC} -T -e "use PVE::Service::$*; PVE::Service::$*->generate_bash_completions();" >$@.tmp
mv $@.tmp $@
%.bash-completion:
perl ${PERL_DOC_INC} -T -e "use PVE::CLI::$*; PVE::CLI::$*->generate_bash_completions();" >$@.tmp
mv $@.tmp $@
%.service-zsh-completion:
perl ${PERL_DOC_INC} -T -e "use PVE::Service::$*; PVE::Service::$*->generate_zsh_completions();" >$@.tmp
mv $@.tmp $@
%.zsh-completion:
perl ${PERL_DOC_INC} -T -e "use PVE::CLI::$*; PVE::CLI::$*->generate_zsh_completions();" >$@.tmp
mv $@.tmp $@
%.service-api-verified:
perl ${PERL_DOC_INC} -T -e "use PVE::Service::$*; PVE::Service::$*->verify_api();"
touch $@
%.api-verified:
perl ${PERL_DOC_INC} -T -e "use PVE::CLI::$*; PVE::CLI::$*->verify_api();"
touch $@
%-plain.html: %.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-wiki -o $@ $*.adoc
chapter-%.html: %.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-chapter -o $@ $*.adoc
%.1: %.adoc %.1-synopsis.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man -o $@ $*.adoc
test -n "$${NOVIEW}" || man -l $@
%.1.html: %.adoc %.1-synopsis.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man-html -o $@ $*.adoc
%.8: %.adoc %.8-synopsis.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man -o $@ $*.adoc
test -n "$${NOVIEW}" || man -l $@
%.8.html: %.adoc %.8-synopsis.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man-html -o $@ $*.adoc
%.5: %.adoc %.5-opts.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man -o $@ $*.adoc
test -n "$${NOVIEW}" || man -l $@
%.5.html: %.adoc %.5-opts.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man-html -o $@ $*.adoc
%.5-plain.html: %.adoc %.5-opts.adoc ${PVE_COMMON_DOC_SOURCES}
${ASCIIDOC_PVE} compile-man-wiki -o $@ $*.adoc
.PHONY: cleanup-docgen
cleanup-docgen:
rm -f *.xml.tmp *.1 *.5 *.8 *.adoc docinfo.xml