Coverage for gpaw/doctools/build_web_page.py: 28%
32 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-09 00:21 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-09 00:21 +0000
1"""Build GPAW's web-page."""
3import os
4import shutil
5import subprocess
6import sys
7from pathlib import Path
10cmds = """\
11python3 -m venv venv
12. venv/bin/activate
13pip install -U pip wheel -qq
14pip install -q git+https://gitlab.com/ase/ase.git
15git clone -q https://gitlab.com/gpaw/gpaw.git
16cd gpaw
17pip install -e .[docs]
18python setup.py sdist
19cd doc
20make
21mv build/html gpaw-web-page
22cd ..
23echo "from gpaw.utilities.urlcheck import test; test()"
24python -m gpaw.utilities.urlcheck doc gpaw
25echo done"""
28def build():
29 root = Path('/scratch/jensj/gpaw-docs')
30 if root.is_dir():
31 sys.exit('Locked')
32 root.mkdir()
33 os.chdir(root)
34 cmds2 = ' && '.join(cmd for cmd in cmds.splitlines() if cmd[0] != '#')
35 p = subprocess.run(cmds2, shell=True)
36 if p.returncode == 0:
37 status = 'ok'
38 else:
39 print('FAILED!', file=sys.stdout)
40 status = 'error'
41 f = root.with_name(f'gpaw-docs-{status}')
42 if f.is_dir():
43 shutil.rmtree(f)
44 root.rename(f)
45 return status
48def build_all():
49 assert build() == 'ok'
50 tar = next(
51 Path('/scratch/jensj/gpaw-docs-ok/gpaw/dist/').glob('gpaw-*.tar.gz'))
52 webpage = Path('/scratch/jensj/gpaw-docs-ok/gpaw/doc/gpaw-web-page')
53 home = Path.home() / 'web-pages'
54 cmds = ' && '.join(
55 [f'cp {tar} {webpage}',
56 f'find {webpage} -name install.html | '
57 f'xargs sed -i s/snapshot.tar.gz/{tar.name}/g',
58 f'cd {webpage}/_sources/setups', # backwards compatibility
59 'cp setups.rst.txt setups.txt', # with old install-data script
60 f'cd {webpage.parent}',
61 'tar -czf gpaw-web-page.tar.gz gpaw-web-page',
62 f'cp gpaw-web-page.tar.gz {home}'])
63 subprocess.run(cmds, shell=True, check=True)
66if __name__ == '__main__':
67 build_all()