Blame view

Documentation/sphinx/load_config.py 2.13 KB
606b9ac81   Markus Heiser   doc-rst: generic ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  # -*- coding: utf-8; mode: python -*-
  # pylint: disable=R0903, C0330, R0914, R0912, E0401
  
  import os
  import sys
  from sphinx.util.pycompat import execfile_
  
  # ------------------------------------------------------------------------------
  def loadConfig(namespace):
  # ------------------------------------------------------------------------------
  
      u"""Load an additional configuration file into *namespace*.
  
      The name of the configuration file is taken from the environment
      ``SPHINX_CONF``. The external configuration file extends (or overwrites) the
      configuration values from the origin ``conf.py``.  With this you are able to
      maintain *build themes*.  """
  
      config_file = os.environ.get("SPHINX_CONF", None)
      if (config_file is not None
          and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ):
          config_file = os.path.abspath(config_file)
a84d9e899   Mauro Carvalho Chehab   docs: load_config...
23
24
25
26
27
28
29
30
31
32
33
34
35
36
          # Let's avoid one conf.py file just due to latex_documents
          start = config_file.find('Documentation/')
          if start >= 0:
              start = config_file.find('/', start + 1)
  
          end = config_file.rfind('/')
          if start >= 0 and end > 0:
              dir = config_file[start + 1:end]
  
              print("source directory: %s" % dir)
              new_latex_docs = []
              latex_documents = namespace['latex_documents']
  
              for l in latex_documents:
d6f0f2f19   Mauro Carvalho Chehab   docs: load_config...
37
                  if l[0].find(dir + '/') == 0:
a84d9e899   Mauro Carvalho Chehab   docs: load_config...
38
39
40
41
42
43
44
45
                      has = True
                      fn = l[0][len(dir) + 1:]
                      new_latex_docs.append((fn, l[1], l[2], l[3], l[4]))
                      break
  
              namespace['latex_documents'] = new_latex_docs
  
          # If there is an extra conf.py file, load it
606b9ac81   Markus Heiser   doc-rst: generic ...
46
47
48
49
50
51
52
53
54
          if os.path.isfile(config_file):
              sys.stdout.write("load additional sphinx-config: %s
  " % config_file)
              config = namespace.copy()
              config['__file__'] = config_file
              execfile_(config_file, config)
              del config['__file__']
              namespace.update(config)
          else:
a84d9e899   Mauro Carvalho Chehab   docs: load_config...
55
56
57
              config = namespace.copy()
              config['tags'].add("subproject")
              namespace.update(config)