Add a website update script

This commit is contained in:
Victor Zverovich 2016-05-08 08:03:01 -07:00
parent fb67a2f660
commit 140f11190b
3 changed files with 48 additions and 2 deletions

View File

@ -18,9 +18,8 @@ def pip_install(package, commit=None, **kwargs):
print('Installing {}'.format(package)) print('Installing {}'.format(package))
check_call(['pip', 'install', '--upgrade', package]) check_call(['pip', 'install', '--upgrade', package])
def build_docs(version='dev'): def create_build_env():
# Create virtualenv. # Create virtualenv.
doc_dir = os.path.dirname(os.path.realpath(__file__))
virtualenv_dir = 'virtualenv' virtualenv_dir = 'virtualenv'
check_call(['virtualenv', virtualenv_dir]) check_call(['virtualenv', virtualenv_dir])
import sysconfig import sysconfig
@ -51,6 +50,8 @@ def build_docs(version='dev'):
check_version='1.4a0.dev-20151013') check_version='1.4a0.dev-20151013')
pip_install('michaeljones/breathe', pip_install('michaeljones/breathe',
'1c9d7f80378a92cffa755084823a78bb38ee4acc') '1c9d7f80378a92cffa755084823a78bb38ee4acc')
def build_docs(version='dev', doc_dir=os.path.dirname(os.path.realpath(__file__))):
# Build docs. # Build docs.
cmd = ['doxygen', '-'] cmd = ['doxygen', '-']
p = Popen(cmd, stdin=PIPE) p = Popen(cmd, stdin=PIPE)
@ -96,4 +97,5 @@ def build_docs(version='dev'):
return 'html' return 'html'
if __name__ == '__main__': if __name__ == '__main__':
create_build_env()
build_docs(sys.argv[1]) build_docs(sys.argv[1])

View File

@ -43,6 +43,7 @@ if build == 'Doc':
check_call(['sudo', 'dpkg', '-i', deb_file]) check_call(['sudo', 'dpkg', '-i', deb_file])
sys.path.insert(0, os.path.join(fmt_dir, 'doc')) sys.path.insert(0, os.path.join(fmt_dir, 'doc'))
import build import build
build.create_build_env()
html_dir = build.build_docs() html_dir = build.build_docs()
repo = 'fmtlib.github.io' repo = 'fmtlib.github.io'
if travis and 'KEY' not in os.environ: if travis and 'KEY' not in os.environ:

43
support/update-website.py Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/env python
import os, shutil, sys
from subprocess import check_call
class Git:
def __init__(self, dir):
self.dir = dir
def call(self, method, args, **kwargs):
return check_call(['git', method] + list(args), **kwargs)
def clone(self, *args):
return self.call('clone', list(args) + [self.dir])
def checkout(self, *args):
return self.call('checkout', args, cwd=self.dir)
# Create build environment.
fmt_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(fmt_dir, 'doc'))
import build
build.create_build_env()
git = Git('fmt')
git.clone('git@github.com:fmtlib/fmt.git')
versions = ['1.0.0']
for version in versions:
git.checkout(version)
target_doc_dir = os.path.join(git.dir, 'doc')
# Remove the old theme.
for entry in os.listdir(target_doc_dir):
path = os.path.join(target_doc_dir, entry)
if os.path.isdir(path):
shutil.rmtree(path)
# Copy the new theme.
for entry in ['_static', '_templates', 'basic-bootstrap', 'bootstrap']:
src = os.path.join(fmt_dir, 'doc', entry)
dst = os.path.join(target_doc_dir, entry)
shutil.copytree(src, dst)
build.build_docs(version, target_doc_dir)
# TODO: copy docs to website