llimllib / refresh-canvas

Code for a talk at Refresh Baltimore on the <canvas> element

This URL has Read+Write access

refresh-canvas / tutorial / make.py
100755 42 lines (33 sloc) 1.307 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python
from glob import glob
from mako.template import Template
from mako.lookup import TemplateLookup
from sys import argv
from os import unlink
from subprocess import Popen, PIPE
 
def clean():
    for f in glob("*.html"): unlink(f)
 
def build():
    pages = eval(file("data.py").read())
 
    def required(page, required_vars):
        for var in required_vars: page[var] = page.get(var, "")
 
    toc = [(page["title"], page["name"]+".html") for page in pages]
 
    for i, page in enumerate(pages):
        page["prev"] = pages[i-1]["name"] if i > 0 else ""
        page["next"] = pages[i+1]["name"] if i+1 < len(pages) else ""
        page["toc"] = toc
 
        required(page, ["code", "explain_before", "explain_after", "title", "hidden_code",
                        "library"])
        file(page['name'] + '.html', 'w').write(
            Template(filename="templates/template.mak",
                     lookup=TemplateLookup(directories=['.'])).render(**page))
 
def deploy():
    print "deploying"
    for f in ['*.html', '*.js', 'theme', 'codemirror']:
        cmd = 'scp -r %(f)s billmill.org:~/static/canvastutorial' % locals()
        p = Popen(cmd, shell=True, stderr=PIPE)
 
if __name__ == "__main__":
    clean()
    build()
    if argv[-1].lower() == "deploy":
        deploy()