On Thu, Jul 16, 2020 at 11:59:17 +0200, Pavel Hrdina wrote: > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > --- > 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. > +) > + > +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.