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

1"""Build GPAW'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 -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""" 

26 

27 

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 

46 

47 

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) 

64 

65 

66if __name__ == '__main__': 

67 build_all()