-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cakefile
83 lines (65 loc) · 2.36 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
fs = require 'fs'
{print} = require 'util'
{spawn} = require 'child_process'
if !!process.platform.match(/^win/)
coffeecmd = 'coffee.cmd'
else
coffeecmd = 'coffee'
if !!process.platform.match(/^win/)
opener = 'start'
else if process.platform == 'darwin'
opener = 'open'
else
library_name = "switch_access"
build = (directories, output, extra_options) ->
args = ['--compile']
args = args.concat ['--output', output]
if typeof extra_options == 'string'
if extra_options != ''
args.push(extra_options)
else if typeof extra_options == 'object'
if extra_options.length > 0
args = args.concat extra_options
if typeof directories == 'string'
args.push(directories)
else if typeof directories == 'object'
if directories.length > 0
args = args.concat directories
else
print "Critical: Missing directories/files for input!"
return
coffee = spawn coffeecmd, args
coffee.stderr.on 'data', (data) ->
process.stderr.write data.toString()
coffee.stdout.on 'data', (data) ->
print data.toString()
# coffee.on 'exit', (code) ->
# callback?() if code is 0
task 'watch', 'Watch library for changes', ->
invoke 'watch:library'
task 'watch:library', "Watch only #{library_name} for changes", ->
build(["./src/#{library_name}", './src/vendor'], 'lib', ['--watch', '--join',"#{library_name}.js"])
task 'watch:tests', 'Watch unit tests for changes', ->
build('src/unit', 'lib/unit', ['--watch', '--join',"#{library_name}_test.js"])
task 'watch:examples', 'Watch unit examples for changes', ->
build('src/examples', 'lib/examples', '--watch')
task 'build', 'Build library, tests and examples', ->
invoke 'build:library'
invoke 'build:tests'
invoke 'build:examples'
task 'build:library', 'Build library', ->
print "Compiling library\n"
build(["./src/#{library_name}", './src/vendor'], 'lib', ['--join',"#{library_name}.js"])
task 'build:tests', 'Build library', ->
print "Compiling tests\n"
build('src/unit', 'lib/unit', ['--join',"#{library_name}_test.js"])
task 'build:examples', 'Build examples', ->
print "Compiling examples\n"
build('./src/examples', 'lib/examples', '')
task 'test', ->
invoke 'build:library'
invoke 'build:tests'
print 'Opening unit test file in default browser\n'
open = require 'open'
open './unit/index.html'
# task 'build:minified', 'Build minified version of library', ->