From 827494d6415b696a98fa195cbd883b50cc893bfc Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue, 11 Jan 2022 15:47:50 +0000
Subject: [PATCH] doctool: Add templates_dir CLI argument

Index: giscanner/docwriter.py
--- giscanner/docwriter.py.orig
+++ giscanner/docwriter.py
@@ -1288,7 +1288,7 @@ LANGUAGES = {
 
 
 class DocWriter(object):
-    def __init__(self, transformer, language, output_format):
+    def __init__(self, transformer, language, output_format, templates_dir=None):
         self._transformer = transformer
 
         try:
@@ -1300,18 +1300,20 @@ class DocWriter(object):
         self._formatter = formatter_class(self._transformer)
         self._language = self._formatter.language
         self._output_format = output_format
+        self._templates_dir = templates_dir
 
         self._lookup = self._get_template_lookup()
 
     def _get_template_lookup(self):
-        if 'UNINSTALLED_INTROSPECTION_SRCDIR' in os.environ:
+        if self._templates_dir is not None:
+            srcdir = self._templates_dir
+        elif 'UNINSTALLED_INTROSPECTION_SRCDIR' in os.environ:
             top_srcdir = os.environ['UNINSTALLED_INTROSPECTION_SRCDIR']
-            srcdir = os.path.join(top_srcdir, 'giscanner')
+            srcdir = os.path.join(top_srcdir, 'giscanner', 'doctemplates')
         else:
-            srcdir = os.path.dirname(__file__)
+            srcdir = os.path.join(os.path.dirname(__file__), 'doctemplates')
 
-        template_dir = os.path.join(srcdir, 'doctemplates',
-                                    self._formatter.output_format)
+        template_dir = os.path.join(srcdir, self._formatter.output_format)
 
         return TemplateLookup(directories=[template_dir],
                               module_directory=tempfile.mkdtemp(),
