forked from bergie/create
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCakefile
64 lines (56 loc) · 1.71 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
fs = require 'fs'
{exec, spawn} = require 'child_process'
{series} = require 'async'
sh = (command) -> (k) ->
console.log "Executing #{command}"
exec command, (err, sout, serr) ->
console.log err if err
console.log sout if sout
console.log serr if serr
do k
getVersion = ->
packageJson = JSON.parse fs.readFileSync "#{__dirname}/package.json", 'utf-8'
packageJson.version
mergeDirs = (k) ->
try
stat = fs.statSync "merged"
catch e
fs.mkdirSync "merged"
series [
(sh "cp src/*.js merged/")
(sh "cp src/collectionWidgets/*.js merged/")
(sh "cp src/editingWidgets/*.js merged/")
], k
task 'build', 'generate unified JavaScript file for whole Create', ->
version = do getVersion
console.log "Building #{version}"
series [
mergeDirs
(sh "cat merged/*.js > examples/create.js")
(sh "sed -i 's/{{ VERSION }}/#{version}/' #{__dirname}/examples/create.js")
(sh "rm -r merged")
]
task 'min', 'minify the generated JavaScript file', ->
version = do getVersion
console.log "Building #{version}"
series [
mergeDirs
(sh "cat merged/*.js > examples/create.js")
(sh "sed -i 's/{{ VERSION }}/#{version}/' #{__dirname}/examples/create.js")
(sh "rm -r merged")
(sh "uglifyjs examples/create.js > examples/create-min.js")
]
task 'bam', 'build and minify Create', ->
invoke 'min'
task 'doc', 'generate documentation for *.coffee files', ->
sh("docco-husky src") ->
task 'docpub', 'publish API documentation', ->
series [
(sh "docco-husky src")
(sh "mv docs docs_tmp")
(sh "git checkout gh-pages")
(sh "cp -R docs_tmp/* docs/")
(sh "git add docs/*")
(sh "git commit -m 'Documentation update'")
(sh "git checkout master")
]