cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

load_config.py (2181B)


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