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