| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1 |
#!/usr/bin/env python3 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2 |
# A script to invoke mkdocs with the correct environment. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3 |
# Additionally supports deploying via mike: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
4 |
# ./mkdocs deploy [mike-deploy-options] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
5 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
6 |
import errno, os, shutil, sys |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
7 |
from subprocess import call |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
8 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
9 |
support_dir = os.path.dirname(os.path.normpath(__file__)) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
10 |
build_dir = os.path.join(os.path.dirname(support_dir), 'build') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
11 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
12 |
# Set PYTHONPATH for the mkdocstrings handler. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
13 |
env = os.environ.copy() |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
14 |
path = env.get('PYTHONPATH') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
15 |
env['PYTHONPATH'] = \ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
16 |
(path + ':' if path else '') + os.path.join(support_dir, 'python') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
17 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
18 |
config_path = os.path.join(support_dir, 'mkdocs.yml') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
19 |
args = sys.argv[1:] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
20 |
if len(args) > 0: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
21 |
command = args[0] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
22 |
if command == 'deploy': |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
23 |
git_url = 'https://github.com/' if 'CI' in os.environ else 'git@github.com:' |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
24 |
site_repo = git_url + 'fmtlib/fmt.dev.git' |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
25 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
26 |
site_dir = os. path.join(build_dir, 'fmt.dev') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
27 |
try: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
28 |
shutil.rmtree(site_dir) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
29 |
except OSError as e: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
30 |
if e.errno == errno.ENOENT: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
31 |
pass |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
32 |
ret = call(['git', 'clone', '--depth=1', site_repo, site_dir]) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
33 |
if ret != 0: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
34 |
sys.exit(ret) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
35 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
36 |
# Copy the config to the build dir because the site is built relative to it. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
37 |
config_build_path = os.path.join(build_dir, 'mkdocs.yml') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
38 |
shutil.copyfile(config_path, config_build_path) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
39 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
40 |
sys.exit(call(['mike'] + args + ['--config-file', config_build_path, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
41 |
'--branch', 'master'], cwd=site_dir, env=env)) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
42 |
elif not command.startswith('-'): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
43 |
args += ['-f', config_path] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
44 |
sys.exit(call(['mkdocs'] + args, env=env)) |
|
|
1970-01-01 00:00 |
45 |
|