rawfiles.py 1.03 KB
# -*- coding: utf-8 -*-
# Copied from https://bitbucket.org/birkenfeld/sphinx-contrib/
import os
import shutil

def on_html_collect_pages(app):
    for f in app.builder.config.rawfiles:
        src = os.path.join(app.srcdir, f)
        dst = os.path.join(app.builder.outdir, f)
        # cleanup
        if os.path.exists(dst):
            if os.path.isdir(dst):
                shutil.rmtree(dst)
            elif os.path.isfile(dst):
                os.remove(dst)
        # copy file
        if os.path.exists(src):
            if os.path.isdir(src):
                shutil.copytree(src, dst)
            elif os.path.isfile(src):
                shutil.copy(src, dst)
            else:
                msg = ('rawfiles target is not directory or file "%s".' % src)
                app.builder.warn(msg)
        else:
            msg = ('rawfiles can not find "%s".' % src)
            app.builder.warn(msg)

    return ()

def setup(app):
    app.add_config_value('rawfiles', [], 'html')
    app.connect("html-collect-pages", on_html_collect_pages)