-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCakefile
87 lines (75 loc) · 2.2 KB
/
Cakefile
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{exec} = require 'child_process'
fs = require 'fs'
less = require 'less'
jade = require 'jade'
_ = require 'underscore'
# test
# compile
task 'compile:less', 'compile less files', ->
parser = new(less.Parser)(
paths: ['./src/less', './vendor/less']
)
src = fs.readFileSync './src/less/main.less', 'utf-8'
parser.parse src, (err, tree) ->
if err
console.log err
else
target = tree.toCSS(compress: true)
fs.writeFileSync './public/css/main.css', target, 'utf-8'
console.log 'compile:less success!'
task 'compile:coffee', 'compile coffee-scripts', ->
files = [
'view/layout',
'view/message',
'view/navbar',
'view/index',
'view/admin',
'view/activities',
'view/profile',
'view/modal'
'view/createOfferModal',
'view/offerList',
'view/offerDetail',
'model',
'collection',
'router',
'sync',
'main'
]
script = 'coffee -bj public/js/main.js -c '
for file in files
script += "src/coffee/#{file}.coffee "
exec script, (err, output) ->
if err
console.log err
else
console.log output, 'compile:coffee success!'
task 'compile:jade', 'compile jade to javascript function', ->
template_dir = './src/jade/'
options =
client: true
target = 'window.Template = {};\n'
files = fs.readdirSync template_dir
for file in files when /^.+\.jade$/.test file
src = fs.readFileSync template_dir + file, 'utf-8'
name = file[...file.indexOf '.']
o = _.chain(options).clone().extend(filename: template_dir + file).value()
fn = jade.compile src, o
target += "window.Template.#{name} = #{fn.toString()};\n\n"
fs.writeFileSync './public/js/templates.js', target, 'utf-8'
console.log 'compile:jade success!'
task 'compile', 'compile all', ->
invoke 'compile:less'
invoke 'compile:coffee'
invoke 'compile:jade'
# watch
task 'watch', 'watch file changes and auto run tasks', ->
invoke 'compile'
fs.watch './src/coffee', (event, filename) ->
invoke 'compile:coffee'
fs.watch './src/coffee/view', (event, filename) ->
invoke 'compile:coffee'
fs.watch './src/less', (event, filename) ->
invoke 'compile:less'
fs.watch './src/jade', (event, filename) ->
invoke 'compile:jade'