-
Notifications
You must be signed in to change notification settings - Fork 1
/
sew.coffee
80 lines (62 loc) · 1.7 KB
/
sew.coffee
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
fs = require 'fs'
fpath = require 'path'
util = require 'util'
cs = require 'coffee-script'
less = require 'less'
stitch = require 'stitch'
util.log 'test'
class Worker
data:
scripts: []
styles: []
options:
config: 'config.json'
js_path: './js'
css_path: './css'
main_js: './js/script.coffee'
main_css: './css/style.less'
constructor: (path) ->
@path = path;
@package = stitch.createPackage({
paths: [ './testfiles/lib', './testfiles/js']
})
@compile()
walk: (path) ->
for f in fs.readdirSync(path)
f = fpath.join(path, f)
stats = fs.statSync(f)
if stats.isDirectory()
@walk f
else
@filterFile f
filterFile: (file) ->
ext = fpath.extname file
switch ext
when '.coffee' then @data.scripts.push file
when '.less' then @data.styles.push file
watchFiles: ->
for f in @data.scripts
util.log f
fs.watchFile f, (curr, prev) =>
util.log curr.mtime + ' ' + prev.mtime
@compile()
compile: ->
util.log 'Something updated'
@package.compile (err, source) ->
fs.writeFile 'application.js', source, (err) ->
util.log err if err;
util.log 'Compiled js!!!'
less.render fs.readFileSync('./testfiles/css/style.less', 'utf8'), (e, css) ->
util.log e if e
fs.writeFile 'application.css', css, (err) ->
util.log err if err
compileScripts: ->
compiledScripts = []
for s in @data.scripts
compiledScripts.push cs.compile(fs.readFileSync(s, 'utf8'))
compiledScripts.join('\n')
wkr = new Worker('./testfiles')
wkr.walk('./testfiles')
#util.log(util.inspect(wkr.data))
#wkr.watchFiles(
wkr.watchFiles()