forked from opensourceBIM/BIMsurfer-before2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cakefile
121 lines (112 loc) · 4.15 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
fs = require 'fs'
path = require 'path'
{exec} = require 'child_process'
appFiles = [
# omit src/ and .coffee to make the below lines a little shorter
'regexp.escape'
'canvas.thumbnail'
'scenejs.nodeattr'
'scenejs.conversion'
'scenejs.orbitlookat'
'scenejs.zoomlookat'
'scenejs.lookat.panrelative'
'scenejs.interpolate.lookat'
'scenejs.fx'
'scenejs.fx.tween.lookat.spline'
'scenejs.fx.idle'
'constants'
'math'
'state'
'mouse'
'events.window'
'events.mouse'
'events.keyboard'
'events.help'
'events.topmenu'
'events.mainmenu'
'events.controls'
'events.snapshots'
'events.bimserver'
'events.dialog'
'events.dialog.importbimserver'
'events.dialog.importfile'
'events.register'
'events.init'
'events.load'
]
task 'build', "Build single application file from source files", ->
#fs.mkdirSync 'build', 0755
exec "mkdir -p 'build'", (err, stdout, stderr) ->
# Concatenate files
appContents = new Array remaining = appFiles.length
for file, index in appFiles then do (file, index) ->
fs.readFile "src/#{file}.coffee", 'utf8', (err, fileContents) ->
throw err if err
appContents[index] = fileContents
process() if --remaining is 0
# Translate concatenated file
process = ->
fs.writeFile 'build/app.coffee', appContents.join('\n\n'), 'utf8', (err) ->
throw err if err
exec "coffee -o static/lib -c build/app.coffee", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
fs.unlink 'build/app.coffee', (err) ->
throw err if err
# Concatenate the header file
fs.readFile 'static/lib/app.js', 'utf8', (err, appjsContents) ->
throw err if err
fs.readFile 'src/header.js', 'utf8', (err, headerjsContents) ->
throw err if err
# Write out the result
fs.writeFile 'static/lib/app.js', headerjsContents + appjsContents, 'utf8', (err) ->
throw err if err
console.log "Done."
task 'fetch:npm', "Fetch the npm package manager", ->
exec "curl http://npmjs.org/install.sh | sudo sh", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."
task 'fetch:uglifyjs', "Fetch the UglifyJS minification tool", ->
exec "npm install uglify-js", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."
#path.exists 'tools/UglifyJS', (exists) ->
# cmdString = if exists then "cd tools/UglifyJS;git pull;cd ../.." else "git clone git://github.com/mishoo/UglifyJS.git tools/UglifyJS"
# exec cmdString, (err, stdout, stderr) ->
# throw err if err
# console.log stdout + stderr
# exec "ln -s tools/UglifyJS/uglify-js.js -t ~/.node_libraries", (err, stdout, stderr) ->
# throw err if err
# console.log stdout + stderr
# console.log "Done."
task 'minify', "Minify the resulting application file after build", ->
#path.exists 'tools/UglifyJS', (exists) ->
path.exists 'node_modules/.bin/uglifyjs', (exists) ->
if exists
#exec "tools/UglifyJS/bin/uglifyjs static/lib/app.js > static/lib/app.min.js", (err, stdout, stderr) ->
exec "node_modules/.bin/uglifyjs static/lib/app.js > static/lib/app.min.js", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."
else
exec "uglifyjs static/lib/app.js > static/lib/app.min.js", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."
task 'clean', "Cleanup all build files and distribution files", ->
exec "rm -rf build;rm static/lib/app.js;rm static/lib/app.min.js", (err, stdout, stderr) ->
#throw err if err
console.log stdout + stderr
console.log "Done."
task 'remove:tools', "Remove all tools from the tools directory", ->
exec "rm -rf tools", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."
task 'optimize:images', "Optimize all PNG's and JPEG's", ->
exec "optipng static/images/*.png -o7", (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
console.log "Done."