1"""Build ASE's web-page."""
2
3import os
4import shutil
5import subprocess
6import sys
7from pathlib import Path
8
9
10cmds = """\
11python3 -m venv venv
12. venv/bin/activate
13pip install sphinx-rtd-theme pillow
14git clone http://gitlab.com/ase/ase.git
15cd ase
16pip install .
17python setup.py sdist
18cd doc
19make
20mv build/html ase-web-page"""
21
22
23def build():
24    root = Path('/tmp/ase-docs')
25    if root.is_dir():
26        sys.exit('Locked')
27    root.mkdir()
28    os.chdir(root)
29    cmds2 = ' && '.join(cmds.splitlines())
30    p = subprocess.run(cmds2, shell=True)
31    if p.returncode == 0:
32        status = 'ok'
33    else:
34        print('FAILED!', file=sys.stdout)
35        status = 'error'
36    f = root.with_name(f'ase-docs-{status}')
37    if f.is_dir():
38        shutil.rmtree(f)
39    root.rename(f)
40    return status
41
42
43def build_all():
44    assert build() == 'ok'
45    tar = next(
46        Path('/tmp/ase-docs--ok/ase/dist/').glob('ase-*.tar.gz'))
47    webpage = Path('/tmp/ase-docs-ok/ase/doc/ase-web-page')
48    home = Path.home() / 'web-pages'
49    cmds = ' && '.join(
50        [f'cp {tar} {webpage}',
51         f'find {webpage} -name install.html | '
52         f'xargs sed -i s/snapshot.tar.gz/{tar.name}/g',
53         f'cd {webpage.parent}',
54         'tar -czf ase-web-page.tar.gz ase-web-page',
55         f'cp ase-web-page.tar.gz {home}'])
56    subprocess.run(cmds, shell=True, check=True)
57
58
59if __name__ == '__main__':
60    build_all()
61