forked from mvasilkov/game-off-2012
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfabfile.py
More file actions
64 lines (57 loc) · 1.71 KB
/
fabfile.py
File metadata and controls
64 lines (57 loc) · 1.71 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from fabric.api import local
SED_PROGRAM = ";".join([
# remove link to bootstrap css
'/bootstrap.css/d',
# remove unused javascript
'/box2d-web.js/d',
'/jquery-1.8.2.js/d',
'/bootstrap.js/d',
# fix css path
's|media/main.css|app.css|',
# fix javascript path
's|lib/soundmanager2-nodebug.js|lib.js|',
's|data-main="app/main.js" src="lib/require.js"|src="app.js"|',
# remove leading whitespace
's|^ *||',
# remove blank lines
'/^$/d',
])
SED_MUSIC_ON = 's|autocomplete="off">|autocomplete="off" checked>|'
UGLIFY_JS_FILES = " ".join([
"lib/box2d-web.js",
"lib/jquery-1.8.2.js",
"lib/bootstrap/bootstrap.js",
"lib/soundmanager2-nodebug.js",
])
RSYNC_FILES = " ".join([
"media",
"upload/app.{css,js}",
"upload/lib.js",
"upload/index.html",
"upload/music-on",
"favicon.ico",
])
def cleanup():
# clean up
local("rm -f app/almond.js _css")
def optimize():
"""Rebuild (minify) game files."""
cleanup()
# initialize
local("ln -s ../lib/almond.js app/almond.js")
local("mkfifo _css")
# build html
local("sed '%s' < index.html > upload/index.html" % SED_PROGRAM)
# build css
local("bin/cssembed.sh media/main.css > _css &")
local("cat lib/bootstrap/bootstrap.css _css | ycssmin > upload/app.css")
# build js
local("r.js -o baseUrl=app name=almond include=main out=upload/app.js wrap=true")
local("uglifyjs %s -c -m -o upload/lib.js" % UGLIFY_JS_FILES)
# build music-on
local("sed '%s' < upload/index.html > upload/music-on/index.html" % SED_MUSIC_ON)
# clean up
cleanup()
def upload():
"""Deploy to server."""
local("rsync -Cavz %s animuchan:git-invaders" % RSYNC_FILES)