Exemple #1
0
def generate_templates(src_path, dst_path, locale):
    jinjaenv.init(src_path, locale)
    env = jinjaenv.get()
    for url in env.renderable_urls():
        # Render
        rendered = env.render_path(url)
        if rendered is None:
            print "Warning: Could not find template for url", url
            continue

        # Save
        template_name = env.template_name(url)
        if os.path.splitext(template_name)[1] == '':
            template_name = os.path.join(template_name, "index.html")
        dst_file_path = os.path.join(dst_path, template_name)
        dst_dirname = os.path.dirname(dst_file_path)
        if not os.path.exists(dst_dirname):
            os.makedirs(dst_dirname)
        with open(dst_file_path, "w") as f:
            f.write(rendered)

    # Copy media files
    for folder in media.folders():
        src_folder = os.path.join(src_path, folder)
        dst_folder = os.path.join(dst_path, folder)
        if os.path.exists(dst_folder):
            # TODO synchronize files intelligently
            shutil.rmtree(dst_folder)
        shutil.copytree(src_folder, dst_folder)
Exemple #2
0
def serve(src_path, locale, address):
    jinjaenv.init(src_path, locale)
    HttpRequestHandler.ROOT_PATH    = os.path.abspath(src_path)
    HttpRequestHandler.LOCALE       = locale
    translate.compile_if_possible(src_path, locale)

    ip, port = address.split(":")
    server_address = (ip, int(port))

    HttpRequestHandler.protocol_version = "HTTP/1.0"
    httpd = BaseHTTPServer.HTTPServer(server_address, HttpRequestHandler)

    sa = httpd.socket.getsockname()
    print "Serving HTTP on", "http://" + sa[0] + ":" + str(sa[1]), "..."
    httpd.serve_forever()