|
@@ -6,6 +6,7 @@ import logging
|
|
|
import os
|
|
|
import pathlib
|
|
|
import re
|
|
|
+import string
|
|
|
import subprocess
|
|
|
import sys
|
|
|
import tempfile
|
|
@@ -179,7 +180,10 @@ def main(argv=None):
|
|
|
"source": gitref.source,
|
|
|
"creatordate": gitref.creatordate.strftime(sphinx.DATE_FMT),
|
|
|
"sourcedir": current_sourcedir,
|
|
|
- "outputdir": outputdir,
|
|
|
+ "outputdir": os.path.join(
|
|
|
+ os.path.abspath(args.outputdir), outputdir
|
|
|
+ ),
|
|
|
+ "confdir": os.path.abspath(confdir),
|
|
|
"docnames": list(project.discover()),
|
|
|
}
|
|
|
|
|
@@ -199,22 +203,29 @@ def main(argv=None):
|
|
|
# Run Sphinx
|
|
|
argv.extend(["-D", "smv_metadata_path={}".format(metadata_path)])
|
|
|
for version_name, data in metadata.items():
|
|
|
- outdir = os.path.join(args.outputdir, data["outputdir"])
|
|
|
- os.makedirs(outdir, exist_ok=True)
|
|
|
+ os.makedirs(data["outputdir"], exist_ok=True)
|
|
|
+
|
|
|
+ defines = itertools.chain(
|
|
|
+ *(
|
|
|
+ ("-D", string.Template(d).safe_substitute(data))
|
|
|
+ for d in args.define
|
|
|
+ )
|
|
|
+ )
|
|
|
|
|
|
current_argv = argv.copy()
|
|
|
current_argv.extend(
|
|
|
[
|
|
|
- *itertools.chain(*(("-D", d) for d in args.define)),
|
|
|
+ *defines,
|
|
|
"-D",
|
|
|
"smv_current_version={}".format(version_name),
|
|
|
"-c",
|
|
|
- confdir,
|
|
|
+ data["confdir"],
|
|
|
data["sourcedir"],
|
|
|
- outdir,
|
|
|
+ data["outputdir"],
|
|
|
*args.filenames,
|
|
|
]
|
|
|
)
|
|
|
+ logger.debug("Running sphinx-build with args: %r", current_argv)
|
|
|
status = sphinx_build.build_main(current_argv)
|
|
|
if status not in (0, None):
|
|
|
break
|