
On Tue, Jul 28, 2020 at 03:18:23PM +0200, Peter Krempa wrote:
On Thu, Jul 16, 2020 at 11:59:17 +0200, Pavel Hrdina wrote:
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/Makefile.am | 26 --------------------- scripts/meson-html-gen.py | 49 +++++++++++++++++++++++++++++++++++++++ scripts/meson.build | 1 + 3 files changed, 50 insertions(+), 26 deletions(-) create mode 100755 scripts/meson-html-gen.py
diff --git a/docs/Makefile.am b/docs/Makefile.am index a2fe2fbdc75..0c42db2badb 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -320,32 +320,6 @@ news.html.in: $(top_srcdir)/NEWS.rst $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \ - $(acl_generated) - $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \ - genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \ - rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \ - src="$$genhtmlin"; \ - test -f "$$genhtmlin" && src="$$rst"; \ - dir=`dirname $@` ; \ - if test "$$dir" = "."; \ - then \ - style=site.xsl; \ - else \ - $(MKDIR_P) $$dir; \ - style=subsite.xsl; \ - fi; \ - $(XSLTPROC) --stringparam pagename $$name \ - --stringparam pagesrc $$src \ - --stringparam builddir '$(abs_top_builddir)' \ - --stringparam timestamp $(timestamp) --nonet \ - $(top_srcdir)/docs/$$style $< > $@ \ - || { rm $@ && exit 1; } - -%.html: %.html.tmp - $(AM_V_GEN)$(XMLLINT) --nonet --format $< > $@ \ - || { rm $@ && exit 1; } - $(apihtml_generated): html/index.html $(apiadminhtml_generated): html/index-admin.html $(apiqemuhtml_generated): html/index-qemu.html diff --git a/scripts/meson-html-gen.py b/scripts/meson-html-gen.py new file mode 100755 index 00000000000..9ac649a9ef7 --- /dev/null +++ b/scripts/meson-html-gen.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +import argparse +import os +import subprocess + +parser = argparse.ArgumentParser() +parser.add_argument("xsltproc", type=str, help="path to xsltproc bin") +parser.add_argument("xmllint", type=str, help="path to xmllint bin") +parser.add_argument("builddir", type=str, help="build root dir path") +parser.add_argument("timestamp", type=str, help="docs timestamp") +parser.add_argument("style", type=str, help="XSL stile file") +parser.add_argument("infile", type=str, help="path to source HTML file") +parser.add_argument("htmlfile", type=str, help="path to generated HTML file") +args = parser.parse_args() + +name = os.path.basename(args.htmlfile).replace('.html', '') + +pagesrc = args.infile +rstfile = pagesrc.replace('.html.in', '.rst') +if os.path.exists(rstfile): + pagesrc = rstfile + +with open(args.infile, 'rb') as infile: + html_in_data = infile.read() + +html_tmp = subprocess.run( + [ + args.xsltproc, + '--stringparam', 'pagename', name, + '--stringparam', 'pagesrc', pagesrc, + '--stringparam', 'builddir', args.builddir, + '--stringparam', 'timestamp', args.timestamp, + '--nonet', args.style, '-', + ], + input=html_in_data, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE,
xsltproc can take an input file as argument so if all of this is just for feeding it the input, it's not necessary to do it so.
Nice catch, leftover from one of the previous versions where I was modifying the infile data directly in python, hence the open() call and passing it to stdin. I'll remove it.
+) + +html = subprocess.run( + [args.xmllint, '--nonet', '--format', '-'], + input=html_tmp.stdout, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE,
We can then do this as separate stage.
What do you mean by separate stage? Not following here. Pavel