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