summaryrefslogtreecommitdiffstats
path: root/tools/build_website.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtools/build_website.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/build_website.py b/tools/build_website.py
new file mode 100755
index 0000000..77a049c
--- /dev/null
+++ b/tools/build_website.py
@@ -0,0 +1,51 @@
+#!/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()