#!/usr/bin/env python3 import os, subprocess, shutil assert os.getcwd() == '/home/jpakkane' from glob import glob def purge(fname: str) -> None: if not os.path.exists(fname): return if os.path.isdir(fname): shutil.rmtree(fname) os.unlink(fname) def update() -> None: webdir = 'mesonweb' repodir = 'mesonwebbuild' docdir = os.path.join(repodir, 'docs') builddir = os.path.join(docdir, 'builddir') htmldir = os.path.join(builddir, 'Meson documentation-doc/html') # subprocess.check_call(['git', 'pull'], cwd=webdir) subprocess.check_call(['git', 'fetch', '-a'], cwd=repodir) subprocess.check_call(['git', 'reset', '--hard', 'origin/master'], cwd=repodir) if os.path.isdir(htmldir): shutil.rmtree(htmldir) if os.path.isdir(builddir): shutil.rmtree(builddir) env = os.environ.copy() env['PATH'] = env['PATH'] + ':/home/jpakkane/.local/bin' subprocess.check_call(['../meson.py', '.', 'builddir'], cwd=docdir, env=env) subprocess.check_call(['ninja'], cwd=builddir) old_files = glob(os.path.join(webdir, '*')) for f in old_files: base = f[len(webdir)+1:] if base == 'CNAME' or base == 'favicon.png': continue subprocess.check_call(['git', 'rm', '-rf', base], cwd=webdir) assert os.path.isdir(webdir) new_entries = glob(os.path.join(htmldir, '*')) for e in new_entries: shutil.move(e, webdir) subprocess.check_call('git add *', shell=True, cwd=webdir) subprocess.check_call(['git', 'commit', '-a', '-m', 'Bleep. Bloop. I am a bot.'], cwd=webdir) subprocess.check_call(['git', 'push'], cwd=webdir) shutil.rmtree(builddir) if __name__ == '__main__': update()