]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
meson: docs: introduce meson-html-gen.py helper
authorPavel Hrdina <phrdina@redhat.com>
Thu, 23 Jul 2020 16:16:49 +0000 (18:16 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Mon, 3 Aug 2020 07:27:06 +0000 (09:27 +0200)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
docs/Makefile.am
scripts/meson-html-gen.py [new file with mode: 0755]
scripts/meson.build

index a2fe2fbdc751c1ba7467a7afde2168f97113d357..0c42db2badb5e9581be695b0deeb8bda0b7c127a 100644 (file)
@@ -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 (executable)
index 0000000..08041f1
--- /dev/null
@@ -0,0 +1,41 @@
+#!/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")
+parser.add_argument("pagesrc", type=str, help="path to source file used for edit this page")
+args = parser.parse_args()
+
+name = os.path.basename(args.htmlfile).replace('.html', '')
+
+html_tmp = subprocess.run(
+    [
+        args.xsltproc,
+        '--stringparam', 'pagename', name,
+        '--stringparam', 'pagesrc', args.pagesrc,
+        '--stringparam', 'builddir', args.builddir,
+        '--stringparam', 'timestamp', args.timestamp,
+        '--nonet', args.style, args.infile,
+    ],
+    stdout=subprocess.PIPE,
+    stderr=subprocess.PIPE,
+)
+
+html = subprocess.run(
+    [args.xmllint, '--nonet', '--format', '-'],
+    input=html_tmp.stdout,
+    stdout=subprocess.PIPE,
+    stderr=subprocess.PIPE,
+)
+
+with open(args.htmlfile, 'wb') as outfile:
+    outfile.write(html.stdout)
index d1d069847d8ebbd8779c2d64753f7480e8e3efea..74662db4b0479ee38ffd56e6c175af51de1f7fc1 100644 (file)
@@ -20,6 +20,7 @@ scripts = [
   'hyperv_wmi_generator.py',
   'meson-gen-def.py',
   'meson-gen-sym.py',
+  'meson-html-gen.py',
   'meson-install-dirs.py',
   'meson-install-symlink.py',
   'meson-python.sh',